系统邮件实战技巧 麦包包:蝎子
系统邮件的应用场景 <ul><li>注册验证 </li></ul><ul><li>取回密码 </li></ul><ul><li>活动通知 </li></ul><ul><li>系统提醒 </li></ul><ul><li>EDM 营销 </li>...
我们曾经遇到的问题 <ul><li>邮件成功发送了,但是没有到达 </li></ul><ul><ul><li>部分邮箱到达不了 </li></ul></ul><ul><ul><li>部分邮件延迟到达 </li></ul></ul><ul><ul...
如何发送系统邮件 <ul><li>基于 SMTP 方式 </li></ul><ul><li>通信过程分析 </li></ul><ul><li>基于 Socket 实现方式 </li></ul>
基于 SMTP 方式 <ul><li>参考 RFC821 规范 </li></ul><ul><li>SMTP 命令不区分大小写,但参数区分大小写 </li></ul><ul><li>常用的 SMTP 命令 </li></ul><ul><ul><...
通信过程分析 <ul><li>Send: Try to connect smtp.qiye.163.com, Port 25  </li></ul><ul><li>Return: 220 qiye.163.com Anti-spam GT fo...
基于 Socket 实现方式 <ul><li>打开连接 </li></ul><ul><ul><li>fsockopen(‘smtp.163.com’, 25, errno, errdesc, timeout) </li></ul></ul><u...
系统邮件的平台要求 <ul><li>稳定的邮件系统 </li></ul><ul><li>安全可靠的服务器资源 </li></ul><ul><ul><li>高可用性、高负载性 </li></ul></ul><ul><ul><li>防入侵、防攻击、...
系统邮件发送流程分析
存在的问题 <ul><li>页面响应时间 </li></ul><ul><li>应用流程耦合度 </li></ul><ul><li>高并发,发送频率不可控 </li></ul><ul><li>WEB 服务器负载 </li></ul><ul><li...
系统邮件发送流程改进
改进后的优点 <ul><li>应用分离,互不影响 </li></ul><ul><li>独立的应用服务管理 </li></ul><ul><li>发送频度可控 </li></ul><ul><li>发送状态可控 </li></ul><ul><li>监...
发送邮件需要注意的问题 <ul><li>域名解析 </li></ul><ul><ul><li>正向解析: MX TXT </li></ul></ul><ul><ul><li>反向解析: PTR </li></ul></ul><ul><li>邮件...
邮件正文需要注意的问题 <ul><li>邮件头 </li></ul><ul><ul><li>From: =?utf-8?B?6bqm5YyF5YyF?= <no-reply@abc.com> </li></ul></ul><ul><ul><li...
邮件正文需要注意的问题 <ul><li>HTML 邮件 </li></ul><ul><ul><li>文件最好小于 50K </li></ul></ul><ul><ul><li>页面宽度在 500-600PX 间 </li></ul></ul><...
Upcoming SlideShare
Loading in …5
×

系统邮件实战技巧

1,659 views
1,583 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,659
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

系统邮件实战技巧

  1. 1. 系统邮件实战技巧 麦包包:蝎子
  2. 2. 系统邮件的应用场景 <ul><li>注册验证 </li></ul><ul><li>取回密码 </li></ul><ul><li>活动通知 </li></ul><ul><li>系统提醒 </li></ul><ul><li>EDM 营销 </li></ul><ul><li>其他应用 </li></ul>
  3. 3. 我们曾经遇到的问题 <ul><li>邮件成功发送了,但是没有到达 </li></ul><ul><ul><li>部分邮箱到达不了 </li></ul></ul><ul><ul><li>部分邮件延迟到达 </li></ul></ul><ul><ul><li>部分邮件被拒收 </li></ul></ul><ul><li>邮件成功到达了,但是进垃圾箱 </li></ul><ul><li>邮件一直发送失败 </li></ul><ul><ul><li>硬弹 </li></ul></ul><ul><ul><li>软弹(邮箱帐号、邮件内容、 IP 临锁等) </li></ul></ul>
  4. 4. 如何发送系统邮件 <ul><li>基于 SMTP 方式 </li></ul><ul><li>通信过程分析 </li></ul><ul><li>基于 Socket 实现方式 </li></ul>
  5. 5. 基于 SMTP 方式 <ul><li>参考 RFC821 规范 </li></ul><ul><li>SMTP 命令不区分大小写,但参数区分大小写 </li></ul><ul><li>常用的 SMTP 命令 </li></ul><ul><ul><li>HELO <domain> <CRLF> 。向服务器标识用户身份发送者能欺骗,说谎,但一般情况下服务器都能检测到。 </li></ul></ul><ul><ul><li>MAIL FROM: <reverse-path> <CRLF> 。 <reverse-path> 为发送者地址,此命令用来初始化邮件传输,即用来对所有的状态和缓冲区进行初始化。 </li></ul></ul><ul><ul><li>RCPT TO : <forward-path> <CRLF> 。  <forward-path> 用来标志邮件接收者的地址,常用在 MAIL FROM 后,可以有多个 RCPT TO 。 </li></ul></ul><ul><ul><li>DATA <CRLF> 。将之后的数据作为数据发送,以 <CRLF>.<CRLF> 标志数据的结尾。 </li></ul></ul><ul><ul><li>REST <CRLF> 。重置会话,当前传输被取消。 </li></ul></ul><ul><ul><li>NOOP <CRLF> 。要求服务器返回 OK 应答,一般用作测试。 </li></ul></ul><ul><ul><li>QUIT <CRLF> 。结束会话 </li></ul></ul>
  6. 6. 通信过程分析 <ul><li>Send: Try to connect smtp.qiye.163.com, Port 25 </li></ul><ul><li>Return: 220 qiye.163.com Anti-spam GT for Coremail System (163-hosting[20090619]) </li></ul><ul><li>Return: Connected to mail host smtp.qiye.163.com </li></ul><ul><li>Send: HELO abc.com </li></ul><ul><li>Return: 250 OK </li></ul><ul><li>Send: AUTH LOGIN // 请求认证 </li></ul><ul><li>Return: 334 dXNlcm5hbWU6 // 服务器的响应——经过 base64 编码了的“ Username” </li></ul><ul><li>Send: bm8tamVwbHlAbWJha2Jhby5jb20= </li></ul><ul><li>Return: 334 UGFzc3dvcmQ6 // 经过 BASE64 编码了的 &quot;Password:&quot; </li></ul><ul><li>Send: SkR1TWo3c0xabW5kcmJDUA== </li></ul><ul><li>Return: 235 Authentication successful </li></ul><ul><li>Send: MAIL FROM: <no-reply@abc.com> </li></ul><ul><li>Return: 250 Mail OK </li></ul><ul><li>Send: RCPT TO: <abc@163.com> </li></ul><ul><li>Return: 250 Mail OK </li></ul><ul><li>Send: DATA </li></ul><ul><li>Return: 354 End data with <CR><LF>.<CR><LF> </li></ul><ul><li>Send: 邮件头和邮件内容 </li></ul><ul><li>Send: . </li></ul><ul><li>Return: 250 Mail OK queued as smtp3,PdOowKBbJAKbs4FMk5IEAA--.2984S2 1283568539 </li></ul><ul><li>Send: QUIT </li></ul><ul><li>Return: 221 Bye </li></ul>
  7. 7. 基于 Socket 实现方式 <ul><li>打开连接 </li></ul><ul><ul><li>fsockopen(‘smtp.163.com’, 25, errno, errdesc, timeout) </li></ul></ul><ul><ul><li>fsockopen(‘ssl://smtp.gmail.com’, 587, errno, errdesc, timeout) </li></ul></ul><ul><li>发送数据 </li></ul><ul><ul><li>fputs </li></ul></ul><ul><li>接收数据 </li></ul><ul><ul><li>fgets (220, 250, 334, 235, 354, 221 有效的返回状态 ) </li></ul></ul><ul><li>关闭连接 </li></ul><ul><ul><li>fclose </li></ul></ul><ul><li>Debug 跟踪 </li></ul>
  8. 8. 系统邮件的平台要求 <ul><li>稳定的邮件系统 </li></ul><ul><li>安全可靠的服务器资源 </li></ul><ul><ul><li>高可用性、高负载性 </li></ul></ul><ul><ul><li>防入侵、防攻击、防病毒等 </li></ul></ul><ul><ul><li>可靠的备份方案 </li></ul></ul><ul><li>运营商的互联互通问题 </li></ul><ul><li>国际国内的邮商及管理机构的协调能力 </li></ul>
  9. 9. 系统邮件发送流程分析
  10. 10. 存在的问题 <ul><li>页面响应时间 </li></ul><ul><li>应用流程耦合度 </li></ul><ul><li>高并发,发送频率不可控 </li></ul><ul><li>WEB 服务器负载 </li></ul><ul><li>DB 服务器负载 </li></ul><ul><li>状态监控不方便 </li></ul><ul><li>IP 限制 </li></ul>
  11. 11. 系统邮件发送流程改进
  12. 12. 改进后的优点 <ul><li>应用分离,互不影响 </li></ul><ul><li>独立的应用服务管理 </li></ul><ul><li>发送频度可控 </li></ul><ul><li>发送状态可控 </li></ul><ul><li>监控方便 </li></ul><ul><li>IP 轮询可调配 </li></ul>
  13. 13. 发送邮件需要注意的问题 <ul><li>域名解析 </li></ul><ul><ul><li>正向解析: MX TXT </li></ul></ul><ul><ul><li>反向解析: PTR </li></ul></ul><ul><li>邮件标题 </li></ul><ul><ul><li>字数少于 35 </li></ul></ul><ul><ul><li>广告邮件需要带( AD ) </li></ul></ul><ul><ul><li>违禁文字 </li></ul></ul><ul><li>邮件正文 </li></ul><ul><li>发送频度 </li></ul>
  14. 14. 邮件正文需要注意的问题 <ul><li>邮件头 </li></ul><ul><ul><li>From: =?utf-8?B?6bqm5YyF5YyF?= <no-reply@abc.com> </li></ul></ul><ul><ul><li>To: =?utf-8?B?6bqm5YyF5YyF?= <abc@163.com> </li></ul></ul><ul><ul><li>Subject: =?utf-8?B?W+m6puWMheWMhV3ms6jlhozpqozor4Hpgq7ku7bvvIjor7fli7/lm57lpI3mraTpgq7ku7bvvIk=?= </li></ul></ul><ul><li>文本邮件 </li></ul><ul><ul><li>换行最好在 68 个字符之后 </li></ul></ul><ul><ul><li>尽可能少出现违禁文字 </li></ul></ul>
  15. 15. 邮件正文需要注意的问题 <ul><li>HTML 邮件 </li></ul><ul><ul><li>文件最好小于 50K </li></ul></ul><ul><ul><li>页面宽度在 500-600PX 间 </li></ul></ul><ul><ul><li>使用 table 来进行布局,尽量少用 rowspan colspan </li></ul></ul><ul><ul><li>不要使用外部 CSS 连接 </li></ul></ul><ul><ul><li>不要使用 JS , iframe , FLASH 等应用 </li></ul></ul><ul><ul><li>不要使用背景图片,表格背景色可用 </li></ul></ul>

×