博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云ECS通过mail发送邮件
阅读量:6078 次
发布时间:2019-06-20

本文共 2988 字,大约阅读时间需要 9 分钟。

参考博文

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

yum安装mailx

[Allen@iZm5eh331inajbk110g28mZ ~]$ yum install -y mailx##yum安装完mailx之后,/etc下会自动创建一个mail.rc的文件,在最下面追加如下内容即可。[Allen@iZm5eh331inajbk110g28mZ ~]$ vim /etc/mail.rc##对方收到邮件时显示的发件人set from=183xxxx2118@163.com##指定第三方发邮件的smtp服务器地址set smtp=smtps://smtp.163.com:465##第三方发邮件的用户名set smtp-auth-user=183xxxx2118##邮箱的密码或授权码(163邮箱需要指定授权码)set smtp-auth-password=xxxxxx##SMTP的认证方式,默认是loginset smtp-auth=login##忽略ssl的检查set ssl-verify=ignore##指定证书所在的目录set nss-config-dir=/home/Allen/.certs

##此时直接发邮件会提示证书不被承认[Allen@iZm5eh331inajbk110g28mZ ~]$ echo test | mail -s test 183xxxx2118@163.com[Allen@iZm5eh331inajbk110g28mZ ~]$ 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.

申请证书

##创建目录,用来存放证书[Allen@iZm5eh331inajbk110g28mZ ~]$ mkdir -p /home/Allen/.certs/##向163申请证书[Allen@iZm5eh331inajbk110g28mZ ~]$ echo -n | openssl s_client -connect smtp.163.com:465  | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crtdepth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CAverify return:1depth=1 C = US, O = GeoTrust Inc., CN = GeoTrust SSL CA - G3verify return:1depth=0 C = CN, ST = ZheJiang, L = HangZhou, O = "NetEase (Hangzhou) Network Co., Ltd", CN = *.163.comverify return:1DONE##添加一个证书到证书数据库[Allen@iZm5eh331inajbk110g28mZ ~]$  certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ##添加一个证书到证书数据库[Allen@iZm5eh331inajbk110g28mZ ~]$ certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ##列出目录下的证书[Allen@iZm5eh331inajbk110g28mZ ~]$ certutil -L -d /home/Allen/.certs/Certificate Nickname                                         Trust Attributes                                                             SSL,S/MIME,JAR/XPIGeoTrust SSL CA                                              C,,  [Allen@iZm5eh331inajbk110g28mZ ~]$ ls /home/Allen/.certs/163.crt    cert8.db   key3.db    secmod.db  ##此时发送邮件还会报错,因为证书不被承认[Allen@iZm5eh331inajbk110g28mZ ~]$ echo "test" | mail -s test 183xxxx2118@163.com[Allen@iZm5eh331inajbk110g28mZ ~]$ 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.##标记为信任[Allen@iZm5eh331inajbk110g28mZ ~]$ cd .certs/[Allen@iZm5eh331inajbk110g28mZ .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.

成功发送邮件

[Allen@iZm5eh331inajbk110g28mZ .certs]$ echo "test" | mail -s test 183xxxx2118@163.com

阿里云ECS通过mail发送邮件


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

[Allen@localhost ~]$ yum install -y mailx[Allen@localhost ~]$ vim /etc/mail.rcset from=183xxxx2118@163.comset smtp=smtp.163.comset smtp-auth-user=183xxxx2118set smtp-auth-password=xxxxxxxxset smtp-auth=login[Allen@localhost ~]$ echo test | mail -s test 183xxxx2118@163.com

转载于:https://blog.51cto.com/10019069/2141364

你可能感兴趣的文章
socket bind 随机端口
查看>>
iOS 字典自动生成模型
查看>>
读jQuery之十(事件模块概述)
查看>>
仅img元素创建后不添加到文档中会执行onload事件
查看>>
全球知名汽车公司品牌
查看>>
Linux SSH远程文件/目录传输命令scp
查看>>
黄聪:WordPress判断当前用户是否为管理员登录
查看>>
Android service binder aidl 关系
查看>>
Redis数据结构详解(一)
查看>>
MySql配置方法,批处理进行MySql配置
查看>>
UE4 Class Naming Prefixes
查看>>
30个优秀的网站导航菜单设计案例
查看>>
Eclipse Tips(3):Template
查看>>
Win32 API消息函数:GetMessagePos
查看>>
跟小静读CLR via C#(17)--接口
查看>>
C#WinForm应用程序实现自动填充网页上的用户名和密码并点击登录按钮
查看>>
[Z]一个轻松制作和处理矢量图的工具和方法
查看>>
PetaPoco的默认映射
查看>>
POJ 基本算法(3)
查看>>
最小生成树两个重要的算法:Prim 和 Kruskal
查看>>