Erlang 发送邮件相关问题

  1. 协议相关 ===== 一封邮件的发送的协议格式如下:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
	"HELO XXX\r\n"
	"AUTH LOGIN \r\r"
	"$Account\r\n" ($Account为账号需要经过base64 encoding)
	"$Password\r\n" ($Password 为密码需要经过base64 encoding)
	"DATA\r\n"
	"From: < $Account> \r\n" ($Account 为发送者的email
	"To : < $ToEmails >\r\n" ($ToEmails 为发送者的列表)
	"Subject: =?UTF-8?B? $Tittle ?=\r\n"($Tittle 是邮件标题经过base64 编码后的字符串,这样做的目的是为了避免中文乱码)
	"MIME-version: 1.0\r\n"
	"Content-Type:text/html;charset=UTF-8\r\n\r\n"
	"$DATA\r\n\r\n" (正文内容)
	"\r\n.\r\n"(结束)
	"QUIT\r\n"(退出)

2.乱码问题

Erlang 处理中文,唯一办法就是转换成utf-8 ,所以在smtp协议里面就需要指明对应的编码,所以标题需要改为"Subject: =?UTF-8?B? $Tittle ?=\r\n"($Tittle 是邮件标题经过base64编码后的字符串,这样做的目的是为了避免中文乱码) , 正文部分需要指明charset :"Content-Type:text/html;charset=UTF-8\r\n\r\n"

  1. 相关资料 ======