.env邮件部分的配置:
MAIL_DRIVER=sendmail
MAIL_HOST=xx.xx.xx
MAIL_PORT=465
MAIL_USERNAME=xx@xx.xx
MAIL_PASSWORD=xxxx
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=xx@xx.xx
MAIL_FROM_NAME=xxx
发送邮件的部分代码:
$to_email = $data['email'];
$filepath = $data['file_path'];
$file_name = $data['file_name'];
$file_hz = $data['file_hz'];
\Mail::send('mail.invoice', [], function(Message $message) use($to_email, $filepath, $file_name, $file_hz) {
$message->to($to_email)->subject($file_name);
if (file_exists($filepath)) {
$message->attach($filepath, ['as' => '=?UTF-8?B?'.base64_encode($file_name).'?=.'.$file_hz]);// 防止中文乱码
}
});
本地发送成功,线上服务器发送失败,无报错信息
需要注意:
阿里云25端口不开放,如果需要25端口,需要工单申请
telnet邮件服务器地址,测试下端口是否通畅,例:telnet smtp.qq.com 465
查看防火墙状态systemctl status firewalld,查看防火墙是否开启,所需端口是否打开
.env中的MAIL_DRIVER=sendmail修改为MAIL_DRIVER=stmp试试