1 前言
笔者需要使用服务器需要发送通知,由于想要简单,不想搭建mail服务器,所以使用Postfix的中继功能发送邮件,于是有了以下的配置。
2 实践部分
2.1配置环境
系统环境:CentOS 7.3 x86_64
邮箱类型:163.com
目标邮件地址:will@cmdschool.org
邮箱服务器地址:smtp.163.com
2.2 配置代发邮件
2.2.1 安装基础软件包
yum install -y postfix mailx cyrus-sasl-plain nss-tools
2.2.2 创建证书目录
mkdir ~/.certs
2.2.3 获取服务器端证书
echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/smtp.163.com.crt
你可以使用如下命令查看生成的证书,
cat ~/.certs/smtp.163.com.crt
可见如下显示,
-----BEGIN CERTIFICATE----- MjIGkjCCBXqgAwIBAgIQA0EbRBbf3u9NDAIagGzNezANBgkqhkiG9w0BAQsFADBe [...] 0hQDr9J5 -----END CERTIFICATE-----
注:“[…]”表示省略
2.2.4 将证书添加到数据库
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs/ -i ~/.certs/smtp.163.com.crt certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs/ -i ~/.certs/smtp.163.com.crt
– 参数“-i”指定导入的证书文件
– 参数“-A”表示将现有证书添加到数据库,如果数据库不存在,则自动创建
– 参数“-n”表示修改或验证证书或秘钥的昵称字符串
– 参数“-t”指定要创建或修改现有证书的信任属性,详细的参数如下,
— 参数“p”声明有效的同伴
— 参数“P”声明信任的同伴(暗示p)
— 参数“c”声明有效的CA
— 参数“C”声明可信的CA(暗示c)
— 参数“T”声明用于客户端认证的可信CA(仅限ssl服务器)
— 不同类别的属性需要使用逗号分隔
— 整体的属性需要包含在引号内
— 属性声明的范例如下,
-t “TC,C,T”
添加完毕后,你可以使用如下指令检查,
certutil -L -d ~/.certs/
另外,为了防止发邮件时的警告,还需设置以下标记,
cd ~/.certs/ certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i smtp.163.com.crt
可见如下提示,
Notice: Trust flag u is set automatically if the private key is present.
2.2.5 创建主配置文件
cp -a /etc/mail.rc /etc/mail.rc.default egrep -v '^#|^&' /etc/mail.rc.default > /etc/mail.rc vim /etc/mail.rc
加入如下配置:
set from=tanzhenchao@163.com set smtp.163.com set smtp-auth-user=tanzhenchao set smtp-auth-password=xxxx set smtp-auth=login set smtp-use-starttls set ssl-verify=ignore set nss-config-dir=/etc/pki/nssdb/
– 参数”from“声明在收件方显示的发件人
– 参数”smtp“声明使用SMTP协议发送邮件所需的服务器地址
– 参数”set smtp-auth-user“声明使用SMTP协议进行身份认证所需的用户名
– 参数”set smtp-auth-password“声明使用SMTP协议进行身份认证所需的密码(某些邮箱填是授权码)
– 参数”smtp-auth“声明使用SMTP协议进行身份认证的方式(可选值包括login、CRAM-MD5和PLAIN,login为默认值)
2.2.6 启动服务并配置自启动
systemctl start postfix systemctl enable postfix
2.2.7 测试邮件发送
echo 'This is a test mail' | mail -s 'This is a test mail' will@cmdschool.org
2.3 邮件拍错
2.3.1 排错涉及的日志
cat /var/log/maillog
2.3.2 设置白名单
tail -f /var/log/maillog
如果遇到如下日志提示,
Aug 12 13:59:20 mosquitto postfix/qmgr[17976]: 0F59C100195: from=, size=459, nrcpt=1 (queue active) Aug 12 13:59:21 mosquitto postfix/smtp[18056]: 0F59C100195: to=, relay=mxbiz1.qq.com[183.57.48.34]:25, delay=1.1, delays=0.02/0.01/0.08/0.96, dsn=5.0.0, status=bounced (host mxbiz1.qq.com[183.57.48.34] said: 550 Mail content denied. http://service.exmail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000726 (in reply to end of DATA command))
可通过登录邮箱“will@cmdschool.org”的管理界面设置白名单处理以上问题,方法如下
单击【设置】->【反垃圾邮件】->【设置白名单】
在“设置邮件白名单”中填入“root@mosquitto.cmdschool.org”并单击【添加到白名单】即可
注:不同的邮箱可能有差异,以上已腾讯企业邮为范例
参阅文档
=====================
https://blog.51cto.com/ygtq666/2164919
没有评论