阿里云邮件推送服务的php调用

阿里云提供三种发邮件的方式:

第一种不支持触发邮件,只支持 群发,故不选

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 文件,在以上链接中有,需要复制出来

一、添加发信域名:

https://dm.console.aliyun.com/?spm=5176.2020520104.aliyun_sidebar.95.2b4b1450yuhq2j#/directmail/Domain/cn-hangzhou

点击操作中的“配置”链接,进行域名配置,要解析四次,处理完后,可点击操作中的“验证”操作。

 

即可看到,验证通过:

 二、添加发信地址

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元

原文地址:https://www.cnblogs.com/wjq310/p/10170180.html