阿里云提供三种发邮件的方式:
第一种不支持触发邮件,只支持 群发,故不选
API、SMTP发信方式的区别?
1、api调用mailagent发信,smtp使用标准的SMTP协议,一般建议使用smtp方式;
2、邮件中含有附件,建议使用smtp方式;
以上是第二种和第三种的区别 ,故选用第三种。
以下全力接入第三种SMTP的方式:
SMTP 之 PHP 调用示例:
https://help.aliyun.com/document_detail/29452.html?spm=a2c4g.11186623.6.608.1b9656b73awFZH
其中 email.class.php 文件,在以上链接中有,需要复制出来
一、添加发信域名:
点击操作中的“配置”链接,进行域名配置,要解析四次,处理完后,可点击操作中的“验证”操作。
即可看到,验证通过:
二、添加发信地址
1、新建发信地址
2、验证回信地址
登录回信地址邮件,点击里面的链接后,再点击操作中的“验证回信地址”,完成后,如下:
3、点击 操作中的“设置SMTP密码”,设置密码,密码的规则有点坑,要注意,保存密码
如果只管发送邮件,以上就已经结束,但是如果要看回调消息,去判断邮件是否真的发送成功的话,就要进行下面的操作
4、设置消息通知:如果要回调的话
https://mns.console.aliyun.com/?spm=5176.2020520150.102.1.574d7528zzqMwO#/notify/cn-shenzhen/dm
新建一个创建规则,红框内的表示是 失败和成功都会回调到同一个http:
新建发信地址级异步通知的时候,可选
注: 还有一个问题,目前还不知道解决方案。就是在调 $smtp->sendmail($mailto,$smtpusermail, $mailsubject, $mailbody, $mailtype, $cc, $bcc, $additional_headers, $sender, $smtpreplyto);
后,拿到的返回值
只有true 或者 false ,并没有其它的参数 ,导致 在回调消息内容里面 ,如果一分钟内给同一个收件人邮件发送两份不同的邮件内容,然后一份成功,一份失败的情况,
不知道是哪封成功,哪封失败,目前在提工单跟进中。
后面发现, 可以用msg_id 去标识哪一条,如果$mailto 是英文逗号连接的多条的话,则可以用 msg_id 和 rcpt 一起作唯一标识。
用了4天,才发现,这topic 资源占用费,调用次数在0-200万次的时候,每天2元