在全新 Debian 上接收电子邮件

在全新 Debian 上接收电子邮件

我在我的 VPS 上重新安装了全新的、干净的 Debian 8。

全部设置为默认值。

dpkg -s exim4dpkg -s postfix说进出口不是安装了,那个后缀安装。通过lsof -i :25显示 PID 478,然后ps p 478显示 来确认这一点478 ? Ss 0:00 /usr/lib/postfix/master。我没做过apt-get install postfix,好像已经默认安装了。

我已经example.com由我的注册商完成了 DNS MX 记录,将其定向到我的服务器。

我刚刚从 Gmail 发送了一封电子邮件至[email protected]

  1. No mail做的时候还是看的$ mail

  2. 如何查看东西是否已到达 postfix?

  3. 是否需要在全新安装的 Debian 上进行配置以接受来自互联网的电子邮件?

  4. 我应该在本地创建邮箱root以接受来自外部邮件发送者的邮件吗[email protected]


这是结果iptables(未修改,默认配置):

root@blah:~# iptables -nvL
Chain INPUT (policy ACCEPT 77135 packets, 50M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 2 packets, 120 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 66416 packets, 11M bytes)
 pkts bytes target     prot opt in     out     source               destination

我现在看到了cat /var/log/mail.log

Nov 22 11:57:32 blah postfix/smtpd[10485]: connect from mail-ua0-f171.google.com[209.85.xxx.xxx]  
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-ua0-f171.google.com>  
Nov 22 11:57:32 blah postfix/smtpd[10485]: disconnect from mail-ua0-f171.google.com[209.85.xxx.xxx]

答案1

此行包含您需要的有用信息

Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from  mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected] ...

这告诉您的是,您的机器拒绝将来自 Google 的消息转发到[电子邮件受保护]。现在,您知道您的机器是 example.com,但显然您的机器不是。

解决方案:修改本地配置以包含 example.com 作为本地计算机的名称。 Postfix 网站上有一个易于阅读的文档 (((BASIC_CONFIGURATION_README.html)[http://www.postfix.org/BASIC_CONFIGURATION_README.html#mydestination])解释了如何设置:

我自己的域名

mydomain 参数指定 $myhostname 的父域。默认情况下,它是通过剥离第一部分从 $myhostname 派生的(除非结果是顶级域)。

相反,如果您在 main.cf 中指定 mydomain,则 Postfix 将使用其值为 myhostname 参数生成完全限定的默认值。

示例(仅指定以下其中一项):

/etc/postfix/main.cf:
    mydomain = local.domain
    mydomain = virtual.domain (virtual interface)

接收哪些域的邮件

mydestination 参数指定该机器将在本地传送哪些域,而不是转发到另一台机器。默认为机器本身接收邮件。请参阅 VIRTUAL_README 文件了解如何为托管域配置 Postfix。

您可以指定零个或多个域名、“/file/name”模式和/或“type:table”查找表(例如 hash:、btree:、nis:、ldap: 或 mysql:),以空格和分隔符分隔/ 或逗号。 “/file/name”模式被其内容替换; “type:table”请求完成表查找并仅测试是否存在:查找结果将被忽略。

重要信息:如果您的计算机是整个域的邮件服务器,则还必须列出 $mydomain。

示例1:默认设置。

/etc/postfix/main.cf:
    mydestination = $myhostname localhost.$mydomain localhost

示例 2:域范围的邮件服务器。

/etc/postfix/main.cf:
    mydestination = $myhostname localhost.$mydomain localhost $mydomain

示例 3:具有多个 DNS A 记录的主机。

/etc/postfix/main.cf:
    mydestination = $myhostname localhost.$mydomain localhost 
        www.$mydomain ftp.$mydomain

注意:为了避免邮件传递循环,您必须列出计算机的所有主机名,包括 $myhostname 和 localhost.$mydomain。

所以,这应该足够了:

mydomain = example.com
...
mydestination = $myhostname localhost.$mydomain localhost $mydomain

答案2

除了 roaima 的答案之外,这也解决了这个问题:

  1. mydestination = <....>, mydomain.com在in末尾添加域名/etc/postfix/main.cf

  2. 注释掉这一行:#mailbox_command = procmail -a "$EXTENSION"

  3. 然后从 Gmail 发送电子邮件至[email protected],等待几秒钟

  4. 这样做mail,您将看到新电子邮件:)

相关内容