搜索
❏ 站外平台:

权威指南:构建个人私有云,拿回你的数据隐私的控制权!

作者: Roudy Jhausse 译者: LCTT zpl1025

| 2015-03-25 21:48   评论: 37 收藏: 12 分享: 59    

测试

就这些了!现在开始测试postfix和dovecot服务!

service dovecot restart
service postfix restart

在服务器上,尝试发送邮件给本地用户:

telnet localhost 25

EHLO cloud.jhausse.net
MAIL FROM:youremail@domain.com
RCPT TO:roudy@jhausse.net
data
Subject: Hallo!

This is a test, to check if cloud.jhausse.net is ready to be an MX!

Cheers, Roudy
.
QUIT

服务器应该接受我们的邮件并返回类似消息:

250 2.0.0 Ok: queued as 58D54101DB

如果一切正常的话,检查一下/var/log/mail.log里的日志。应该有类似下面的一行:

Nov 14 07:57:06 cloud dovecot: lmtp(4375, roudy@jhausse.net): ... saved mail to INBOX

到这里一切都正常吗?不错。现在,让我尝试从不同的机器发邮件,比如说我们用来设定服务器的电脑。这次我们使用加密方式(TLS)和服务器对话:

openssl s_client -connect cloud.jhausse.net:25 -starttls smtp
EHLO cloud.jhausse.net
MAIL FROM:roudy@jhausse.net
rcpt to:bob@gmail.com

服务器应该有这样的响应:

554 5.7.1 <bob@gmail.com>: Relay access denied

这个没问题:如果服务器能接受这封邮件而不是返回如上的拒绝消息,那意味着我们架设的postfix是一个对全世界所有垃圾邮件都开放的中继,这将完全没法使用。除了'Relay access denied'消息,你也可能会收到这样的响应:

554 5.7.1 Service unavailable; Client host [87.68.61.119] blocked using zen.spamhaus.org; http://www.spamhaus.org/query/bl?ip=87.68.61.119

意思是你正尝试从一个被标记成垃圾邮件发送者的IP地址连接服务器。我在通过普通的因特网服务提供商(ISP)连接服务器时曾收到过这样的消息。要解决这个问题,可以试着从另一个主机发起连接,比如另外一个你可以SSH登录的主机。另外一种方式是,你可以修改postfix的main.cf配置文件,不要使用Spamhous的RBL,重启postfix服务,然后再检查上面的测试是否正常。不管用哪种方式,最重要的是你要确定一个能工作的,因为我们后面马上要测试其他功能。如果你选择了重新配置postfix不使用RBL,别忘了在完成本文后重新开启RBL并重启postfix,以避免收到一些不必要的垃圾邮件。(LCTT 译者注:在国内可以使用 CASA 的 RBL:cblplus.anti-spam.org.cn,参见:http://www.anti-spam.org.cn/ 。)

现在,我们试一下往SMTP端口25发送一封有效的邮件,这是一般正常的邮件服务器用来彼此对话的方式:

openssl s_client -connect cloud.jhausse.net:25 -starttls smtp
EHLO cloud.jhausse.net
MAIL FROM:youremail@domain.com
RCPT TO:roudy@jhausse.net

服务器应该有这样的响应:

Client host rejected: Greylisted, see http://postgrey.schweikert.ch/help/jhausse.net.html

这意味着postgrey工作正常。postgrey做的是用临时错误拒绝未知发送者的邮件。邮件的技术规则是要求邮件服务器尝试重新发送邮件。在5分钟后,postgrey就会接收这封邮件。一般世界范围内遵守规则的邮件服务器都会尝试为我们重复投递邮件,但大多数垃圾邮件发送者不会这样做。所以,等上5分钟,再次通过上面的命令发送一次,然后检查postfix应该正常接收了邮件。

之后,我们检查一下我们可以通过IMAP和dovecot对话获取刚才发送的两封邮件。

openssl s_client -crlf -connect cloud.jhausse.net:993
1 login roudy@jhausse.net "mypassword"
2 LIST "" "*"
3 SELECT INBOX
4 UID fetch 1:1 (UID RFC822.SIZE FLAGS BODY.PEEK[])
5 LOGOUT

这里,你应该把mypassword替换为你自己为这个邮件账号设定的密码。如果能正常工作,基本上我们已经拥有一个能接收邮件的邮件服务器了,通过它我们可以在各种设备(PC/笔记本、平板、手机...)上收取邮件了。

LCTT 译者
zpl1025 🌟🌟🌟🌟
共计翻译: 61.0 篇 | 共计贡献: 1659
贡献时间:2014-02-12 -> 2018-08-28
访问我的 LCTT 主页 | 在 GitHub 上关注我


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。