阿里云专有网络主机发送邮件

测试了一下阿里云的VPC,发现VPC下的ECS主机都不能发送邮件。

我们先来看看以前我们再LINUX下如何发送邮件呢?很简单

yum install mailx -y
\cp /etc/mail.rc{,.bk}
cat >> /etc/mail.rc  <<EOF
  set from=jiankong@163.com
  set smtp=smtp.163.com
  set smtp-auth-user=jiankong@163.com
  set smtp-auth-password=123456
  set smtp-auth=login
EOF

 

然后,echo "内容"|mail -s "标题" 邮箱地址,就能发送邮件,而我一般都是写139的邮箱地址,因为能直接到手机了。

如果是经典网络,阿里云是不限制的。但是阿里云的专有网络主机却把25端口出口方向限制了。

通过工单和阿里云技术沟通,主要有2点可以绕过。

1、不使用25端口。

2、申请解封

第一点可以使用465和80端口。

第二点是基于弹性IP,我测试阶段暂时用不到弹性IP。

使用465端口

vim /etc/mail.rc

  set from=baojing@QQ企业邮箱
  set smtp=smtps://smtp.exmail.qq.com:465
  set smtp-auth-user=baojing@QQ企业邮箱
  set smtp-auth-password=123456
  set smtp-auth=login
  set nss-config-dir=/etc/pki/nssdb/
  set ssl-verify=ignore

 

cd /etc/pki/nssdb

获取证书文件

echo -n | openssl s_client -connect smtp.exmail.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./qq.crt

添加证书到证书数据库中

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu"  -d ./ -i qq.crt 

使用80端口

使用阿里云企业邮箱免费版也可以发信

set smtp=smtp.mxhichina.com:80

使用其他方法

既然这些主机在添加了NAT网关后都能请求外网,我是不是可以通过请求一台可以发送邮件的服务器帮忙转发出去?

实现很简单。

我写了一个名为qOQBVnhLlEOjgjx.php的PHP文件(名字尽量复杂点,你懂得。)

<?php

$content = $_GET['content'];
$title = $_GET['title'];

shell_exec("echo '$content' | /bin/mail -s '$title' your@139.com");

?>

  

OK,利用PHP的内置函数调用系统MAIL命令实现发送邮件。

最后,我们在专有网络主机上测试。

curl "http://www.abc.com/qOQBVnhLlEOjgjx.php?content=mysql oom&title=mysql down on 1.2.3.4"

完工。

 

posted @ 2017-05-09 16:57  gaolongquan  阅读(1705)  评论(0编辑  收藏  举报