CentOS 使用 Mailx 通过465端口发送邮件
CentOS Linux release 7.6.1810
使用 QQ SMTP 发送邮件
安装 Mailx
$ yum install mailx
- 1
开启 SMTP 并获得授权码
登录邮箱 - 设置 - 账户
1.开启 SMTP
2.获得 SMTP 授权码 (需要手机验证)
设置 mail.rc
设置发送者的邮箱信息
set from=XXXXXXXX@qq.comset smtp=smtps://smtp.qq.com:465set smtp-auth-user=XXXXXXXXX@qq.comset smtp-auth-password=********* // 邮箱SMTP授权码set smtp-auth=loginset ssl-verify=ignoreset nss-config-dir=/root/.certs
- 1
- 2
- 3
- 4
- 5
- 6
- 7
设置证书
由于阿里云默认禁用TCP 25端口,我们可以手动申请解封25端口,
我们可以使用465端口,使用以下命令生成并设置该证书
$ mkdir -p /root/.certs/$ echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt$ certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt$ certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt$ cd /root/.certs/$ certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i qq.crt$ certutil -L -d /root/.certs// Certificate Nickname Trust Attributes// SSL,S/MIME,JAR/XPI// GeoTrust SSL CA P,P,P// 设置成功
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
发送测试邮件
内容注意要使用双引号,单引号会输出到内容
// 发送内容$ echo "my mail content" | mail -s "withContent_title" 405348097@qq.com// 发送内容 (从 content.txt 中读取内容)$ mail -s "withFileContent_title" 405348097@qq.com < content.txt// 发送附件 -a$ echo "my mail with accessory" | mail -a content.txt -s "withAccessory_title" 405348097@qq.com
- 1
- 2
- 3
- 4
- 5
- 6
mail 参数:
-b address 指定密件副本的收信人地址-c address 指定副本的收信人地址-f [file] 读取指定邮件文件中的邮件-i 忽略终端发出的信息-I 使用互动模式-n 启动时禁止读取 /etc/mail.rc-N 阅读邮件时,不显示邮件的标题-s subject 指定邮件的主题-t 要发送的消息应包含带有 To:、Cc:、或 Bcc: 字段的消息头,在命令行上指定的收件人将被忽略。-u user 读取指定用户的邮件-v 执行时,显示详细的信息-V 显示版本信息并退出
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
欢迎技术指正与交流,转载请注明出处
https://www.imure.cn/2019/11/19/CentOS-Mailx/
[root@resume .certs]# cat /etc/mail.rc
set from=it@roshi.cn
set smtp=smtps://smtp.mxhichina.com:465
set smtp-auth-user=it@roshi.cn
set smtp-auth-password=dlROSHI123&
set smtp-auth=login
#set smtp-use-starttls=yes
set ssl-verify=ignore
set nss-config-dir=/root/.certs