发送邮件可通过以下两种方式实现:
方式一:使用PHP通过SMTP协议发信
1 . 初始化:创建PHPMailer
对象并设置SMTP参数,包括服务器地址、端口、是否启用SSL、发件人账号、密码等。 php $mail = new PHPMailer\PHPMailer\PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtpdm.aliyun.com'; $mail->SMTPAuth = true; $mail->Username = '发件人账号'; $mail->Password = '***'; $mail->SMTPSecure = 'ssl'; // 或者 '' $mail->Port = 465; // 或者 80
2 . 设置发件人与收件人:
php $mail->setFrom('发信地址', '发件人昵称'); $mail->addAddress('收信地址', '收件人昵称'); $mail->addReplyTo('回信地址'); $mail->addCC('抄送人地址'); $mail->addBCC('密送人地址');
3 . 附件与内容:
php $mail->isHTML(true); $mail->Subject = '邮件主题'; $mail->Body = '邮件正文'; $mail->addAttachment('附件路径', '附件显示名称');
4 . 发送邮件:调用send()
方法发送邮件,处理可能抛出的异常。 php try { $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; }
方式二:使用阿里云PHP SDK发送邮件
php use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; use AlibabaCloud\Dm\V20151123\SingleSendMailRequest; AlibabaCloud::accessKeyClient('Access Key ID', 'Access Key Secret') ->regionId('Region ID') ->asDefaultClient();
SingleSendMailRequest
对象,设置发信人(AccountName、FromAlias)、收件人(ToAddress)、邮件主题(Subject)、正文(HtmlBody)等属性。 php $request = new SingleSendMailRequest(); $request->setAccountName('控制台创建的发信地址'); $request->setFromAlias('发信人昵称'); $request->setAddressType(1); $request->setReplyToAddress('true'); $request->setToAddress('目标地址'); $request->setSubject('邮件主题'); $request->setHtmlBody('邮件正文');
getAcsResponse()
方法发送请求,捕获并处理可能出现的ClientException
和ServerException
。 php try { $response = $client->getAcsResponse($request); print_r($response); } catch (ClientException $e) { print_r($e->getErrorCode()); print_r($e->getErrorMessage()); } catch (ServerException $e) { print_r($e->getErrorCode()); print_r($e->getErrorMessage()); }
注意:使用阿里云SDK发送邮件时,若需调用模板批量发信,请使用BatchSendMailRequest
,并设置setTemplateName
和setReceiversName
属性。
发送邮件的三种方式-阿里云帮助中心 (aliyun.com)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。