Linux学习 - 使用qq邮箱发送邮件
1 打开qq邮箱,设置->账户->POP3/SMTP,开启服务
2 配置/etc/mail.rc文件
set from=73***32@qq.com #设置发送方邮件地址
set smtp=smtp.qq.com #设置smtp邮箱服务器
set smtp-auth-user=73***32@qq.com #设置登入用户名
set smtp-auth-password=ydpo***ej #设置登入密码(qq邮箱授权码,开启pop3/smtp可生成)
set smtp-auth=login #登入
3 测试
echo "my name is zhw" | mail -s "zhw-mail" 73***32@qq.com
发送失败,错误提示:linux smtp-server: 530 error: a secure connection is requiered(such as ssl)
4 在配置文件中再添加以下配置信息
set smtp-use-starttls #SSL验证信息
set ssl-verify=ignore #SSL验证信息
set nss-config-dir=/etc/pki/nssdb/ #SSL验证信息
linux配置qq邮箱发邮件
1.安装mailxyum -y install mailx
2.配置mail
vim /etc/mail.rc
set from=xxxxxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=xxxxxx@qq.com
set smtp-auth-password=你的 QQ 邮箱授权码
set smtp-auth=login
#set smtp-use-starttls 这里是不需要配置的,很多地方没说明,配置了反而会验证失败,所以我注释掉;
set ssl-verify=ignore
set nss-config-dir=/root/.certs
3.配置QQ邮箱的SSL证书
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
certutil -L -d /root/.certs
为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱 SSL 证书存放目录 /root/.certs 里执行如下命令:certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
返回如下提示即可:**Notice: Trust flag u is set automatically if the private key is present.**
4.通过命令行发送测试邮件mailx -s "邮箱测试" xxxx@qq.com < message_file.txt
linux使用mail发送外部smtp邮件
第一章 说明
参考资料:
linux使用mail发送外部smtp邮件 – 酷喃|coolnull
linux自带的mail可以实现外部smtp发邮件。不需要本地配置postfix,sendmail邮件服务器,配置整套下来确实需要点时间。
环境:
IP | 主机名 | 操作系统 | 备注 |
192.168.120.130 | db130 | CentOS release 6.10 (Final) |
第二章 实现
2.1 关闭本机的sendmail服务或者postfix
service sendmail stop chkconfig sendmail off service postfix stop chkconfig postfix off # 需要安装这个工具 yum -y install mail
2.2 修改/etc/mail.rc
服务器地址: POP3服务器: pop.163.com SMTP服务器: smtp.163.com IMAP服务器: imap.163.com
增加一下类似N行,指定外部的smtp服务器地址、帐号密码等。
cp /etc/mail.rc /etc/mail.rc.bak.`date +%Y%m%d%H` [root@db130 ~]# cat /etc/mail.rc # 新增如下内容 ################ # add new context: set from=13439017540@163.com set smtp=smtp.163.com set smtp-auth-user=13439017540@163.com set smtp-auth-password=xxxxx set smtp-auth=login # 保存后退出,测试发送邮件 echo "hello" | mail -s "Title" 13439017540@163.com 根据网速、运营商、SMTP的情况不同,邮件发送将有延迟现象。 # 没有附件的发送 [root@db130 yum.repos.d]# echo hello word | mailx -v -s " title" 13439017540@163.com Resolving host smtp.163.com . . . done. Connecting to 220.181.12.17 . . . connected. 220 *********************************************************** >>> EHLO db130 250-mail 250-PIPELINING 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXA 250-XXXXXXXB 250 8BITMIME >>> AUTH LOGIN 334 dXNlcm5hbWU6 >>> MTM0MzkwMTc1NDBAMTYzLmNvbQ== 334 UGFzc3dvcmQ6 >>> TFdXMTM0NTQw 235 Authentication successful >>> MAIL FROM:<13439017540@163.com> 250 Mail OK >>> RCPT TO:<13439017540@163.com> 250 Mail OK >>> DATA 354 End data with <CR><LF>.<CR><LF> >>> . 250 Mail OK queued as smtp13,EcCowAD3rB23TI9bpLofDA--.36134S2 1536117944 >>> QUIT 221 Bye [root@db130 yum.repos.d]# #带有附件的发送方式 mailx -v -s "title3" 13439017540@163.com </root/INSTALL.mysql.sh