# 阿里云ECS通过mail发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了# 阿里云ECS通过mail发送邮件相关的知识,希望对你有一定的参考价值。

参考博文

面对疾风

因为阿里云默认将目的端口为TCP25的出现流量屏蔽了,所以改用465 ssl端口发送邮件。

yum安装mailx

[[email protected] ~]$ yum install -y mailx
##yum安装完mailx之后,/etc下会自动创建一个mail.rc的文件,在最下面追加如下内容即可。
[[email protected] ~]$ vim /etc/mail.rc

##对方收到邮件时显示的发件人
set [email protected]

##指定第三方发邮件的smtp服务器地址
set smtp=smtps://smtp.163.com:465

##第三方发邮件的用户名
set smtp-auth-user=183xxxx2118

##邮箱的密码或授权码(163邮箱需要指定授权码)
set smtp-auth-password=xxxxxx

##SMTP的认证方式,默认是login
set smtp-auth=login

##忽略ssl的检查
set ssl-verify=ignore

##指定证书所在的目录
set nss-config-dir=/home/Allen/.certs

##此时直接发邮件会提示证书不被承认
[[email protected] ~]$ echo test | mail -s test [email protected]
[[email protected] ~]$ Error in certificate: Peer‘s certificate issuer is not recognized.
smtp-server: 454 Command not permitted when TLS active
"/home/Allen/dead.letter" 11/301
. . . message not sent.

##创建目录,用来存放证书
[[email protected] ~]$ mkdir -p /home/Allen/.certs/

##向163申请证书
[[email protected] ~]$ echo -n | openssl s_client -connect smtp.163.com:465  | sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p‘ > ~/.certs/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

##添加一个证书到证书数据库
[[email protected] ~]$  certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt 

##添加一个证书到证书数据库
[[email protected] ~]$ certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt 

##列出目录下的证书
[[email protected] ~]$ certutil -L -d /home/Allen/.certs/

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

GeoTrust SSL CA                                              C,,  

[[email protected] ~]$ ls /home/Allen/.certs/
163.crt    cert8.db   key3.db    secmod.db  

##此时发送邮件还会报错,因为证书不被承认
[[email protected] ~]$ echo "test" | mail -s test [email protected]
[[email protected] ~]$ Error in certificate: Peer‘s certificate issuer is not recognized.
smtp-server: 454 Command not permitted when TLS active
"/home/Allen/dead.letter" 11/301
. . . message not sent.

##标记为信任
[[email protected] ~]$ cd .certs/
[[email protected] .certs]$ 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.

##没有报错解决问题
[[email protected] .certs]$ echo "test" | mail -s test [email protected]

普通服务器配置mailx发送邮件场景

[[email protected] ~]$ yum install -y mailx
[[email protected] ~]$ vim /etc/mail.rc
set [email protected]
set smtp=smtp.163.com
set smtp-auth-user=18310892118
set smtp-auth-password=0817LTBbtl
set smtp-auth=login

[[email protected] ~]$ echo test | mail -s test [email protected]

以上是关于# 阿里云ECS通过mail发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

阿里云ECS发送邮件到腾讯企业邮箱

2阿里云ECS发送邮件到腾讯企业邮箱(ECS默认不开启25端口)

阿里云ECS服务器无法发送邮件

本地能正常发送邮件 阿里云服务器端发送邮件提示已经成功了 但是发送不过来 显示 Failure sending mail.

阿里云ECS CentOS6.5搭建iRedMail邮件服务器

阿里云邮件推送及邮件发送测试