Email并不能在用户之间直接传递,而是依赖于邮件的:
上述3个过程,1和2都是推送,使用SMTP(Simple Mail Transfer Protocol)协议;3是拉取,使用的是POP3协议。
我们开发中所谓的“发送email”其实只关注第1个阶段,即把邮件内容推送到
练习时推荐使用网易免费邮箱。
首先需要自己去申请一个账号,我为了方便教学,已经弄好了:
邮件服务商会提供Host(服务器地址)和Port(连接用端口号),
通过这些信息,我们就能连接上网易的SMTP服务器,推送email。
一般包括:
你不用担心不知道SMTP协议究竟是怎么约定的,不知道怎么建立连接如何推送……
我们只需要利用一些封装得很好的类库,就可以轻松的实现email的发送(体会:封装的作用)
email的发送并不总是能够成功到达的,就像我们寄出去的信一样:我们能够控制的是把信交给邮局这一段,之后我们就没法控制了。
一般来说,以下情况我们能够收到异常信息:
但以下情况不会收到异常信息:
所以实际开发中我们要注意:
因为没有标题正文啥的,比发送email还要简单!
获取 SecretID 和 SecretKey
只需要使用服务商提供的SDK(各种语言都有),按文档调用相关的API就OK了。
PS:SDK(Software Development Kit,软件开发工具包),可以简单理解为API的集合
项目运行所需的有些信息:
这些信息就不宜放在代码中,而是可以放置在所谓的“配置文件”中
配置文件的格式一般可以是(演示):
一般来说,Java和C#都会有基本的类库方法,可以很方便的读取配置文件中的信息。且:
email或短信发送失败(以及其他各种异常信息)一般都要通过log记录,以便维护。
出于性能的考虑,我们通常使用(使用了大量性能优化技术的)成熟的第三方组件进行日志记录。
其中最负盛名的就是log4(历史悠久,稳如老狗):C#的log4.net和Java的log4j,其核心对象都是loggerLogger logger = LogManager.getLogger("17bang"); logger.trace("this is a trace message……"); logger.debug("this is a debug message……"); logger.info("this is a info message……"); logger.warn("this is a warn message……"); logger.error("this is a error message……"); logger.fatal("this is a fatal message……");其中:
他们都依赖于其配置文件,这两行的代码意思是:如果配置文件中配置了17bang的logger,且标记为trace级别,就记录内容this is a trace message……
配置文件一般是xml格式,包含的logger节点如下所示:
<Loggers> <Logger name="17bang" level="DEBUG"> <AppenderRef ref="File" /> <AppenderRef ref="Console" /> </Logger>level按级别从小到大是:TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF
在配置文件中定义的是级别的“下限”,比如:level="DEBUG",就只会输出debug以上的内容,不会输出debug以下trace的内容。
logger依赖于Appender,Appender指定log输出的方式:
<Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" /> </Console> <File name="File" fileName="c:/log/app.log"> <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" /> </File> </Appenders>首先是节点名称,只能是Console/File/Writer等,指示了日志输出到控制台/文件/自定义流……
name供logger引用:<AppenderRef ref="File" />
Console要指定target,File要指定文件路径
然后里面的PatternLayout,通过pattern指定具体的输出内容:
演示和其他说明:略
多快好省!前端后端,线上线下,名师精讲
更多了解 加: