composer require phpmailer/phpmailer
/**
* 邮件发送
* @param $userName 发送者邮箱
* @param $pwd 发送者授权码
* @param $sendAddress 收件人邮箱 说明:多人收件需使用数组[]
* @param string $subject 邮件标题
* @param string $body 邮件内容
* @param string $attachment 邮件附件 说明:多个附件需使用数组[]
* @return bool|string 返回bool或者异常字符串
* @throws \PHPMailer\PHPMailer\Exception
*/
function send_mail($userName, $pwd, $sendAddress, $subject = '', $body = '', $attachment = '')
{
$mail = new \PHPMailer\PHPMailer\PHPMailer(); //实例化PHPMailer对象
$mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->isSMTP(); // 设定使用SMTP服务
$mail->SMTPDebug = 0; // SMTP调试功能 0=关闭 1 = 错误和消息 2 = 消息
$mail->SMTPAuth = true; // 启用 SMTP 验证功能
$mail->SMTPSecure = 'ssl'; // 使用安全协议
$mail->Host = "smtp.qq.com"; // 企业邮局域名
$mail->Port = 465; //设置ssl连接smtp服务器的远程服务器端口号 可选465或587
$mail->Username = $userName; //邮件发送人的用户名(请填写完整的email地址)
$mail->Password = $pwd; //邮件发送人的 密码 (授权码)
$mail->setFrom($userName, $userName);
$replyEmail = ''; //留空则为发件人EMAIL
$replyName = ''; //回复名称(留空则为发件人名称)
$mail->addReplyTo($replyEmail, $replyName); //回复的地址
$mail->Subject = $subject; //邮件标题
$mail->msgHTML($body); //邮件内容
if (is_array($sendAddress)) {//收件人
foreach ($sendAddress as $k => $v) {
if (is_int($k)) {
$mail->addAddress($v); //收件人地址,("收件人email")
} else {
$mail->addAddress($v, $k); //收件人地址,("收件人email","收件人姓名")
}
}
} else {
$mail->addAddress($sendAddress); //收件人地址,("收件人email")
}
//$mail->addCC('cc@example.com'); // 抄送
// $mail->addBCC('bcc@example.com'); //密送
if (!empty($attachment)) {
if (is_array($attachment)) {
foreach ($attachment as $k => $v) {
if (is_int($k)) {
$mail->addAttachment($v); //添加附件
} else {
$mail->addAttachment($v, $k); //添加附件
}
}
} else {
$mail->addAttachment($attachment); //添加附件
}
}
return $mail->send() ? true : $mail->ErrorInfo;
}
public function index()
{
$username = '97*****8@qq.com';//发件人邮箱
$pwd = 'mdvozcjc*********';//发件人邮箱第三方授权码
$sendAddress = ['142**********@qq.com', '47********5@qq.com'];//收件人邮箱,多人收件格式必须是数组形式
$subject = '这是标题';
$body = '这是邮件正文内容';
$attachment = ['../data.csv'];//发送附件,多附件发送格式必须是数组形式
$send = send_mail($username, $pwd, $sendAddress, $subject, $body, $attachment);
if ($send === true) {
return '发送成功';
}
return '发送失败';
}
网友评论