1、使用mial命令第三方、并非使用sendmail 和postfix—25端口
发邮件格式
mail -s "hello" 122269@qq.com < /www/server/nginx/conf/nginx.conf # 发送文本里的内容
mail -s "hello" -c "122123498@qq.com" 1222609@qq.com < /www/server/nginx/conf/nginx.conf
发送给多个人,271537752为收件人,122123498为抄送人(echo方式)
echo "邮件正文" | mail -s "测试失败" -c "122123498@qq.com" 271537752@qq.com
cat 邮件正文.txt | mail -s 邮件主题 271537752@qq.com
mail -s "主题" 271537752@qq.com < 文件(邮件正文.txt)
echo "这里输入你邮件内容" | mail -s "邮件标题" -a test.txt 122609@qq.com 发送附件
# 备份数据库并发发送到邮箱,呵呵奇葩要求天天有
mysqldump -uroot -p442e1ef63d8c8759 -B -F -R --triggers --single-transaction --master-data=2 --events y107_shangtua_c|gzip >/backup/$(date +%F)tsryd.sql.gz
cd /backup/
echo "SQL_file" | mail -s "SQL_file" -a $(date +%F)_tsryd.sql.gz XXXXX09@qq.com
QQ邮箱设置方式(163同理,qq改为163,其他设置成163邮箱)
[root@moban .mailqq]# vim /etc/mail.rc
set from=linyaohong
set from=122123498@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=122123498@qq.com
set smtp-auth-password=khcdkdfqyylkcadd #这里并非邮箱密码,而是开始smtp的授权密码,具体邮箱获取方法不同
set smtp-auth=login
2、465端口发送邮件(阿里云服务器25端口被禁用了)
163邮箱
#创建目录,用来存放证书
[root@moban ~]# mkdir -p /root/.mail/
#请求证书
[root@moban ~]# echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.mail/163.crt
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = GeoTrust Inc., CN = GeoTrust SSL CA - G3
verify return:1
depth=0 C = CN, ST = ZheJiang, L = HangZhou, O = "NetEase (Hangzhou) Network Co., Ltd", CN = *.163.com
verify return:1
DONE
#添加一个证书到证书数据库中
[root@moban ~]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.mail -i ~/.mail/163.crt
[root@moban ~]# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.mail -i ~/.mail/163.crt
#列出目录下证书
[root@moban ~]# certutil -L -d /root/.mail/
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
GeoTrust SSL CA C,,
#编辑配置文件
[root@moban .mailqq]# vim /etc/mail.rc #尾部添加下列内容
set from=m18653902018@163.com
set smtp-auth-user=m18653902018@163.com
set smtp="smtps://smtp.163.com:465"
set smtp-auth-password=Aa111111
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.mail
测试发邮件
[root@409web .mailqq]echo "邮件正文" | mail -s "邮件主题" -c "122123498@qq.com" "271537752@qq.com"
此时发送邮件能发送成功,但是发送完邮件还有报错:证书不被信任,且命令行就此卡住,需要按键才能出现命令提示符
设置证书信任
cd /root/.mail/
[root@moban .mail]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt
Notice: Trust flag u is set automatically if the private key is present.
QQ邮箱(126同理)
mkdir -p /root/.mailqq/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.mailqq/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.mailqq -i ~/.mailqq/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.mailqq -i ~/.mailqq/qq.crt
certutil -L -d /root/.mailqq/
cd .mailqq/
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
配置文件:
set from=122123498@qq.com
set smtp-auth-user=122123498@qq.com
set smtp="smtps://smtp.qq.com:465"
set smtp-auth-password=khcdkdfqyylkcadd
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.mailqq