15
系系系系系系 系系系 系系

系统邮件实战技巧

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 系统邮件实战技巧

系统邮件实战技巧

麦包包:蝎子

Page 2: 系统邮件实战技巧

系统邮件的应用场景• 注册验证• 取回密码• 活动通知• 系统提醒• EDM营销• 其他应用

Page 3: 系统邮件实战技巧

我们曾经遇到的问题• 邮件成功发送了,但是没有到达–部分邮箱到达不了–部分邮件延迟到达–部分邮件被拒收

• 邮件成功到达了,但是进垃圾箱• 邮件一直发送失败–硬弹–软弹(邮箱帐号、邮件内容、 IP临锁等)

Page 4: 系统邮件实战技巧

如何发送系统邮件• 基于 SMTP方式• 通信过程分析• 基于 Socket实现方式

Page 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>。结束会话

Page 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.comSend: HELO abc.comReturn: 250 OKSend: AUTH LOGIN // 请求认证Return: 334 dXNlcm5hbWU6 // 服务器的响应——经过 base64编码了的“ Username”Send: bm8tamVwbHlAbWJha2Jhby5jb20=Return: 334 UGFzc3dvcmQ6 // 经过 BASE64编码了的 "Password:" Send: SkR1TWo3c0xabW5kcmJDUA==Return: 235 Authentication successfulSend: MAIL FROM: <[email protected]>Return: 250 Mail OKSend: RCPT TO: <[email protected]>Return: 250 Mail OKSend: DATAReturn: 354 End data with <CR><LF>.<CR><LF>Send: 邮件头和邮件内容Send: .Return: 250 Mail OK queued as smtp3,PdOowKBbJAKbs4FMk5IEAA--.2984S2 1283568539Send: QUITReturn: 221 Bye

Page 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跟踪

Page 8: 系统邮件实战技巧

系统邮件的平台要求• 稳定的邮件系统• 安全可靠的服务器资源–高可用性、高负载性–防入侵、防攻击、防病毒等–可靠的备份方案

• 运营商的互联互通问题• 国际国内的邮商及管理机构的协调能力

Page 9: 系统邮件实战技巧

系统邮件发送流程分析

Page 10: 系统邮件实战技巧

存在的问题• 页面响应时间• 应用流程耦合度• 高并发,发送频率不可控• WEB服务器负载• DB服务器负载• 状态监控不方便• IP限制

Page 11: 系统邮件实战技巧

系统邮件发送流程改进

Page 12: 系统邮件实战技巧

改进后的优点• 应用分离,互不影响• 独立的应用服务管理• 发送频度可控• 发送状态可控• 监控方便• IP轮询可调配

Page 13: 系统邮件实战技巧

发送邮件需要注意的问题• 域名解析–正向解析:MX TXT–反向解析: PTR

• 邮件标题–字数少于 35–广告邮件需要带( AD)–违禁文字

• 邮件正文• 发送频度

Page 14: 系统邮件实战技巧

邮件正文需要注意的问题• 邮件头– From: =?utf-8?B?6bqm5YyF5YyF?= <no-

[email protected]>– To: =?utf-8?B?6bqm5YyF5YyF?=

<[email protected]>– Subject: =?utf-8?B?

W+m6puWMheWMhV3ms6jlhozpqozor4Hpgq7ku7bvvIjor7fli7/lm57lpI3mraTpgq7ku7bvvIk=?=

• 文本邮件– 换行最好在 68个字符之后– 尽可能少出现违禁文字

Page 15: 系统邮件实战技巧

邮件正文需要注意的问题• HTML邮件–文件最好小于 50K–页面宽度在 500-600PX间–使用 table来进行布局,尽量少用 rowspan

colspan–不要使用外部 CSS连接–不要使用 JS , iframe , FLASH等应用–不要使用背景图片,表格背景色可用