说实话有点后悔用腾讯云做跨境电商服务器了跟AWS那差距不是一星半点儿,虽然便宜但是很多隐性问题会一直困扰你。比如邮件问题,以下我用的是centos7 自带的sendmail问题,请对号入座。
你以为开通25端口就万事大吉了吗?非也,开通25只能给163发发邮件,其他邮箱没一个收的到。那么至少就说明发送邮件是没问题的,问题在于对方拒收或者其他等等。
服务器自发邮件一般会被拒收特别是国外的邮箱,有的是对方需要反向解析DNS,或者监控你的流量。也可能是之前这个IP已经被别人玩烂了,当然我的阴谋论是美帝根本不待见中国企业,封的就是你23333
特意测试了一下结果如下:
邮件服务肯定是没问题的,因为邮件确实发送了,症状如下:
1、国内的163可以正常收到,QQ邮箱收不到;
2、国外Yahoo什么的基本上是被退信了,说是服务器流量异常;
3、gmail 则显示服务器地址非法之类的错误;
执行命令:mailq可以看到如下队列信息基本上是退信的:
很显然再去搭建一个邮件服务器代价高昂。那么就只能利用SMTP代发了。
以下我做了一些尝试,在这之前你需要熟悉centos的一些基本命令和服务:
查看队列中的邮件 mailq
查看配置:postconf -n
删除队列中的邮件 postsuper -d ALL
队列中邮件重新发送postqueue -f
关闭邮件服务 /etc/init.d/postfix stop
邮件日志 /var/log/maillog
测试邮件mail -s test test@alanhou.org,若出现如下报错,请执行yum install mailx -y
-bash: mail: command not found
测试25端口 telnet alt2.gmail-smtp-in.l.google.com 25(这里以gmail为例,可选择其它网站)
Linux centos 运行telnet命令,出现下面的错误提示:
[root@localhost ~]# telnet 127.0.0.1
-bash: telnet: command not found
解决方法: 安装telnet服务
centos、ubuntu安装telnet命令的方法.
yum list telnet* 列出telnet相关的安装包
yum install telnet-server 安装telnet服务
yum install telnet.* 安装telnet客户端
163的smtp
自己去163申请开通smtp,需要用到手机,会有一个单独的smtp密码的,由于国内的比较废材我就不发申请步骤了
set from= 你的邮箱
set smtp=smtp.163.com
set smtp-auth-user=你的邮箱
set smtp-auth-password=smtp密码不太填你邮箱的密码
set smtp-auth=login
encryption: ssl
mailer_port: 465
执行命令:vi /etc/mail.rc 把上面的内容复制粘贴到最下面保存退出;
执行命令:echo "hello啊啊啊 xxxx.com" | mail -v -s "" 你的邮箱地址
测试邮件发送。
测试结果:国内邮箱都可以收到,国外的收不到,估计是被墙了。
QQ邮箱smtp
申请跟163类似
set from=你的邮箱
set smtp=smtp.qq.com
set smtp-auth-user=你的邮箱
set smtp-auth-password=smtp密码不是你的邮箱密码
set smtp-auth=login
encryption: ssl
mailer_port: 465
测试结果:国内邮箱都可以收到,国外的收不到,估计是被墙了。
GAMIL SMTP
申请比较容易也不需要什么独立密码
申请好之后去个人中心降低访问权限
https://myaccount.google.com/security
set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set smtp-auth-user=你的邮箱
set smtp-auth-password=你的邮箱密码
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
设置好之后执行测试你可能会出现以下错误:说你密码不对什么的,但是你的密码是对的。
可以尝试访问以下网址解锁以下,或者再把那什么 低访问权限的流程走一遍。
https://accounts.google.com/b/0/DisplayUnlockCaptcha