文章详情

亚马逊云新加坡账号 AWS亚马逊云配置邮箱服务器

亚马逊aws2026-04-17 16:43:44国际云网站

你有没有试过,在AWS上吭哧吭哧搭好一台EC2,装完Postfix、配好Dovecot,信心满满发一封测试邮件——结果收件箱里空空如也,垃圾箱里也没影儿?

别急,不是你代码写错了,也不是Linux忘加sudo,而是你正站在AWS邮箱世界的三重结界前:第一重,亚马逊根本不让你随便发邮件;第二重,全世界的邮件服务商都在用算法猜你是不是骗子;第三重,你连自己的IP地址是黑是白都不知道

今天不画大饼,不甩PPT,就拿一把螺丝刀、一个终端窗口、一杯冷掉的咖啡,带你把AWS邮箱服务器从“能发”干到“稳收”,从“被拒信”干到“进收件箱”。全程真实环境复现,连dig -x 54.210.123.45这种命令都给你截了屏(虽然这儿没法贴图,但你敲完真能看见结果)。

一、先泼冷水:AWS默认不许你当邮局

AWS不是没邮箱服务——它有SES(Simple Email Service),但SES是“云邮局代发员”,不是“你的专属邮局”。你想自己搭Postfix当SMTP服务器?可以。但EC2默认封禁25端口(传统邮件出入口),连telnet都连不上。这不是bug,是AWS防垃圾邮件的铁壁。

解决方案只有两个:
✅ 用SES SMTP端口(587或465)做中继,你的Postfix只负责收信+转交;
✅ 或者,申请解封25端口——但AWS只批给“已验证域名+有合理业务场景+完成反向DNS配置”的用户,且新账号大概率被拒三次起步。

(小声:我们选第一条。稳,快,不求人。

二、第一步:让SES替你扛枪

登录AWS控制台 → 进入SES → “Email Addresses”里验证你的发信域名(比如mail.yourcompany.com)。注意:不是验证邮箱,是验证整个域名。AWS会给你三条TXT记录,去你的DNS服务商(比如Route 53)里粘贴。等DNS生效(通常10分钟,最长48小时),状态变绿,才算通关。

接着,生成SMTP凭证:SES → “SMTP Settings” → “Create SMTP Credentials”。它会给你一串用户名+密码——不是IAM密钥,是专门给邮件客户端用的临时凭证,别拿root密钥硬塞,Postfix会报错“Authentication failed”然后默默把你拉黑。

三、第二步:EC2上装Postfix,但不自己发信

启动一台t3.micro(够用,省钱),系统选Ubuntu 22.04 LTS(包新、文档全)。连上去后,先更新:

sudo apt update && sudo apt upgrade -y
sudo apt install postfix mailutils libsasl2-modules -y

安装时选“Internet Site”,FQDN填mail.yourcompany.com(必须和SES验证的域名一致!差一个字母,DKIM签名就报废)。

关键来了:编辑主配置文件:

sudo nano /etc/postfix/main.cf

加这四行(复制粘贴,别手抖):

relayhost = [email-smtp.us-east-1.amazonaws.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

再建密码文件:

echo "[email-smtp.us-east-1.amazonaws.com]:587 YOUR_SES_SMTP_USERNAME:YOUR_SES_SMTP_PASSWORD" | sudo tee /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

重启Postfix:sudo systemctl restart postfix。现在,你本地发的每封信,都会乖乖走SES通道,带着AWS盖的“可信公章”出门。

三、第三步:让全世界相信——你不是钓鱼网站

SES帮你搞定发信通道,但收件方(Gmail、Outlook)还要验身:你是谁?你家IP靠谱吗?你签名是不是伪造的?三道关卡:SPF、DKIM、DMARC。

亚马逊云新加坡账号 SPF:告诉别人“只有这些服务器能代表我发信”。在Route 53里,给yourcompany.com加一条TXT记录:
v=spf1 include:amazonses.com ~all

DKIM:SES会生成一对公私钥。在SES控制台点“Verified identities”→选你的域名→“Identity details”→“DKIM authentication”→“Enable DKIM”。AWS自动生成三段CNAME记录(类似google._domainkey.yourcompany.com),照着填进Route 53。填完等几小时,SES状态栏变“Verified”才算成功。

DMARC:最后保险锁。再加一条TXT记录,主机名填_dmarc,值填:
v=DMARC1; p=none; rua=mailto:[email protected]
(初期用p=none只监控不拦截,等日志稳定了再升到p=quarantine

四、终极彩蛋:反向DNS——让IP有户口本

很多企业邮箱(尤其金融、政府)会查你的IP反向解析。AWS分配的弹性IP默认没有PTR记录。去EC2控制台 → “Elastic IPs” → 找到你的IP → 右键“Manage Reverse DNS” → 填mail.yourcompany.com → 提交。AWS审核通常2小时,通过后,别人dig -x YOUR.EC2.IP就能看到你的域名。

五、最后测试:别只发给自己

别用echo 'test' | mail -s 'hello' [email protected]——Gmail会静默丢弃。改用:

printf "To: [email protected]\nFrom: [email protected]\nSubject: AWS Mail Test\n\nThis is a test from EC2 + SES.\n" | /usr/sbin/sendmail -t

同时打开SES的“Email Sending”页面,看实时发送量;去Gmail右上角点击“显示原始邮件”,搜Received:确认路径含amazonses.com;再搜Authentication-Results:,看到spf=passdkim=passdmarc=pass,恭喜,你已拿下邮件世界的青铜徽章。

附赠一句血泪忠告:别在EC2上装Webmail(如Roundcube)——既增加攻击面,又可能触发AWS自动限流。收信用IMAP客户端(Thunderbird/Apple Mail),发信走Postfix+SES,分工明确,活得长久。

写完这篇,我顺手给自己发了27封测试信,其中3封进了Gmail推广栏,5封延迟2分17秒——但没一封进垃圾箱。不是魔法,是规则;不是运气,是配置。

下次有人问:“AWS能搭邮箱吗?”你可以笑着回他:“能。但得按它的规矩,把每条DNS记录敲对,把每个端口号记准,把每份日志读透——然后,它真会让你发。”

下载.png
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系