我正在尝试设置一个发送邮件服务器来发送电子邮件,这个邮件会被转发给我们的ISP。
在/etc/postfix/main.cf我有我的主机名到ourcompany.example.com和myorigin和mydomain到$ myhostname。 ourcompany.example.com是可parsing的。
但是查看/ var / log / maillog中的日志,看起来postfix确实使用myhostname作为发送地址,但使用getmyhostname()中的任何内容,因为这是一个内部服务器,发送电子邮件,但不处理传入的电子邮件。
有任何想法吗?
编辑:postconf -n
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix debug_peer_level = 2 html_directory = no inet_interfaces = localhost inet_protocols = all mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost mydomain = example.com myhostname = ourcompany.example.com myorigin = $mydomain newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.6.5/README_FILES relayhost = smtp.grapevine.com.au sample_directory = /usr/share/doc/postfix-2.6.5/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop unknown_local_recipient_reject_code = 550
我们的company.example.com和example.com是公共领域的任何人都可以解决,因此应该由我的ISP解决。 问题不是域,但事实上,后缀不使用它,我得到的日志如:
May 26 10:23:22 localhost postfix/smtp[3910]: 449AF5803F6: to=<[email protected]>, relay=smtp.grapevine.com.au[203.129.32.140]:25, delay=63275, delays=63274/0.02/0.04/0.4, dsn=4.1.8, status=deferred (host smtp.grapevine.com.au[203.129.32.140] said: 450 4.1.8 <[email protected]>: Sender address rejected: Domain not found (in reply to RCPT TO command))
它使用server.internal而不是$ myorigin,而server.internal是你从调用gethostname()得到的,它是一个内部主机名,不能在公共因特网上parsing。
所以我的问题是,如何设置后缀使用example.com而不是使用gethostname()? 我的想法是,只有当我离开myorigin,mydomain和myhostname为空时,才使用gethostname(),但是将它们设置为上述设置并不起作用。
mydomain = example.com myorigin = $mydomain
默认情况下,选项append_at_myorigin设置为yes ,这意味着任何和所有没有域组件的传出邮件将获得附加myorigin的值。
在你的情况下,这是域名,而不是主机名。
始终使用完全限定的地址发送邮件,即包含本地部分和有效的现有域/主机名部分。
如果由于某些原因您不能使用地址重写自述文件中描述的方法之一
用端口25上的telnet连接到你的服务器,你会看到一个string,明确地告诉你它是否实际上使用myhostname。
我的怀疑是,你根本没有正确地设置地址。