狠狠撸

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

More Related Content

系统邮件实战技巧

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