linux服务器发送邮件配置笔记

《linux服务器发送邮件配置笔记》

服务器一旦出了问题出了故障,就需要立即通知管理人员进行处理修复,这时你就需要邮件或者短信来通知管理人员,下面是邮件发送的简单配置

使用laravel中mail功能进行邮件发送,以126.com邮件为例

//设置配置文件 .env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.126.com
MAIL_PORT=465
MAIL_USERNAME=你的账号@126.com
MAIL_PASSWORD=你的126邮箱smtp终端授权码,不是邮箱密码
MAIL_FROM_ADDRESS=xxx@126.com
MAIL_FROM_NAME=xxx服务系统提示
MAIL_ENCRYPTION=ssl

//函数 Mail类是框架自带的,不需要另外安装
use Mail;
function mail($data=[]){
	set_time_limit(0);
	//如果定义了模板
	if(isset($data['blade'])){
		Mail::send($data['blade'],$data,function ($msg) use($data){
			//$msg->from('xxx@126.com','系统邮件');
			$msg->to($data['to'])->subject($data['subject']??'邮件标题');
			if(isset($data['attachment'])){
				$msg->attach($data['attachment'],['as'=>$data['attachment_name']]);
			}
		});
	}else{
		//纯文本发送
		Mail::raw($data['content']??'邮件正文内容',function ($msg) use($data){
			//$msg->from('xxx@126.com','系统邮件');
			$msg->to($data['to']??'收件人的邮箱@qq.com')->subject($data['subject']??'邮件标题');
			if(isset($data['attachment'])){
				$msg->attach($data['attachment'],['as'=>$data['attachment_name']]);
			}
		});
	}
}

配置mailx使用外部smtp发送邮件的实现方式

//安装
# yum -y install mailx

//现在各大免费邮箱基本用SSL方式来连接,使用的是465端口
# vi /etc/mail.rc
set from=xxx@126.com
set smtp=smtps://smtp.126.com:465
set smtp-auth-user=xxxx@126.com
set smtp-auth-password=xxxx  //授权码,不是密码
set smtp-auth=login
#set ssl-verify=ignore  //使用普通模式,不使用ssl
#set nss-config-dir=/root/.certs //使用普通模式,不使用ssl

//生成ssl证书
###生成证书有问题,certutil: 未找到命令

//发送测试
# echo "这是一封测试邮件正文" | mailx -v -s "【81服务器】系统信息" 414545xxx@qq.com
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注