当我们要做邮箱验证码的时候,利用其它第三方的邮件smtp,进行邮件发送会出现用户收不到邮件,或者收到邮件会很慢,而阿里云邮件推送的功能可以解决,稳定实时的发送邮件给客户,
首先在阿里云邮件推送设置一个域名
再到域名哪里解析如下:
解析成功后严重通过后就可以写程序
https://github.com/aliyun/openapi-sdk-php
在这个地址下载php sdk
vendor('sdk.vendor.autoload');
useAlibabaCloud\Client\AlibabaCloud;
useAlibabaCloud\NlsCloudMeta\NlsCloudMeta;
useAlibabaCloud\Client\Exception\ClientException;
useAlibabaCloud\Client\Exception\ServerException;
引入sdk文件
vendor('sdk.vendor.autoload');
useAlibabaCloud\Client\AlibabaCloud;
useAlibabaCloud\NlsCloudMeta\NlsCloudMeta;
useAlibabaCloud\Client\Exception\ClientException;
useAlibabaCloud\Client\Exception\ServerException;
classAliyunemailService{
function__construct(){
//$fwconfig=D('Config')->getAll();
$config=array(
'MAIL_CHARSET'=>'UTF-8',
'MAIL_SMTPAUTH'=>true,//是否使用身份验证
'MAIL_ISHTML'=>true,//是否使用html
'MAIL_USERNAME'=>'',//发件地址
//'MAIL_USERNAME'=>'send3@cdcxhl.cn',//发件地址
'MAIL_SMTPHOST'=>'',//smtp地址
'MAIL_PASSWORD'=>'',//发件地址密码
'MAIL_GET_ADDRESS'=>'',//默认收件箱
);
$this->mailconfig=$config;
}
/**
*发送邮件
*@param$get_email
*@param$dataarray('title'=>'','title2'=>'','detail'=>'')
*@returnbool
*/
publicfunctionsendEmail($data,$get_email=''){
$mail=$this->setBaseConfig($data,$get_email);
return$mail;
}
/**
*邮件基本设置
*@param$mail
*@param$data
*@paramstring$get_email
*@returnmixed
*/
publicfunctionsetBaseConfig($data,$get_email=''){
AlibabaCloud::accessKeyClient('LTAImdH845znjHst','Vsimrg02TDW1wrM100LvvEbGtrGu6S')
->regionId('cn-hangzhou')
->asDefaultClient();
try{
$result=AlibabaCloud::rpc()
->product('Dm')
//->scheme('https')//https|http
->version('2015-11-23')
->action('SingleSendMail')
->method('POST')
->host('dm.aliyuncs.com')
->options([
'query'=>[
'RegionId'=>"cn-hangzhou",
'AccountName'=>"",//发件人
'AddressType'=>"1",
'ReplyToAddress'=>"false",
'ToAddress'=>$get_email,//收件人
'Subject'=>$data['title'],
'TagName'=>"tag",//不用管
'HtmlBody'=>$data['detail'],//发送html格式的内容
'TextBody'=>"",//发送文本内容
'FromAlias'=>$data['title2'],//发件人昵称
'ReplyAddress'=>"",//回件邮箱
'ReplyAddressAlias'=>"客户",//不用管
'ClickTrace'=>"0",
],
])
->request();
returntrue;
}catch(ClientException$e){
return$e->getErrorMessage().PHP_EOL;
}catch(ServerException$e){
return$e->getErrorMessage().PHP_EOL;
}
}
}
调用邮件发送:
$AliyunemailService=newService\AliyunemailService();
$result=$AliyunemailService->sendEmail($email_data,$data['email']);
需要注意的是阿里云的邮件推送功能 每天有200封免费的,用户量大的话,超过的话是 超过就需要购买邮件推送资源包
当前标题:PHP利用阿里云邮件推送功能做网站邮件发送
转载来源:/news28/243978.html
成都网站建设公司_创新互联,为您提供企业网站制作、网站设计公司、网站建设、Google、自适应网站、ChatGPT
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联