使用 Apache James 3.3.0(开源免费) 搭建外网电子邮件服务器(基于 Windows + Amazon Corretto 8)
对于邮件服务器的安装,请先参阅:
使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8)
之后进行如下操作/配置:
1.购买域名,比如 my_org.com .
2.确定可在外网使用的服务器/电脑。对于小公司/组织来说,可以租用云服务器,比如,亚马逊云,阿里云,等等。
3.更改域名DNS 中对应的邮件配置,将以下配置指向新的服务器 IP 或主机名。
type | name | value | ttl |
CNAME | imap-mail | xxx.compute.amazonaws.com | 1 hour |
CNAME | smtp-mail | xxx.compute.amazonaws.com | 1 hour |
CNAME | pop-mail | xxx.compute.amazonaws.com | 1 hour |
MX | @ | xxx.compute.amazonaws.com | 1 hour |
4.如果使用的是租借云服务器,比如 AWS, 或阿里云,需要在云服务器的 web 管理端,更改云服务器的防火墙配置,允许以下端口的访问:
邮件端口 | 邮件协议 |
110 | POP3 |
25 | SMTP |
143 | IMAP |
5. 修改 ${JAMES_ROOT}\conf\dnsservice.xml ,配置如下:
<servers> <server>8.8.8.8</server> </servers> <autodiscover>false</autodiscover> <authoritative>false</authoritative>
6.修改 ${JAMES_ROOT}\conf\smtpserver.xml, 防止被当成免费的 SMTP 垃圾邮件发送服务器。
将注释去掉,使其生效:
<verifyIdentity>true</verifyIdentity> <authRequired>true</authRequired> <helloName autodetect="false">my_org.com</helloName>
以上配置的意思是,发邮件时,需要用户登录密码。防止垃圾邮件发送者,把此邮件当作垃圾邮件发送的跳板,拼命经由此邮件服务器,往其它邮件服务器发大量的垃圾邮件。然后其它邮件服务器,会将刚安装的邮件服务器拉入黑名单。
7.修改 ${JAMES_ROOT}\conf\mailetcontainer.xml ,配置如下:
将如下配置注释起来:
<!-- <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> <processor>relay-denied</processor> <notice>550 - Requested action not taken: relaying denied</notice> </mailet> -->
8.停止、启动 C:\apps\james-server-app-3.3.0\bin\run.bat 。
9.尝试与外部邮箱,比如 xxx@qq.com, xxx@hotmail.com, xxx@gmail.com , 相互进行邮件发送、接收。
有可能发出的电子邮件,被放在对方的邮箱 "废件箱"子目录中。这种情况下,只能请对方收件人,手工移到"收件箱"子目录中。或者对方的邮件服务器,做一些配置,不把我们发过去的邮件,自动放到邮箱 "废件箱"里。