我试图设置一个postfix服务器来testing我们的应用程序,它使用oracle邮件库javax.mail来发送邮件。 该应用程序工作正常,因为我能够使用谷歌,我们自己的邮件服务器等发送邮件。
发送ehlotesting时遇到的问题是5.7.1中继访问被拒绝。 我看到有几百个这样的问题,但是没有一个能够帮助我理解这个问题的实际效果。
如果我在main.cf中将yahoo.com列为“relay_domain”,则可以将邮件发送给yahoo收件人。 我并没有真正理解这是什么意思,我列出了所有的域名,我想发送邮件到这里(当然不是)。 对不起noob风格的问题,但大多数的指南似乎是为了更好地理解电子邮件如何工作的人。
postfix在centOS上运行。
这是我的configuration差异。
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, mail.$mydomain, www.$mydomain, ftp.$mydomain mydomain = *****.com myhostname = mail.*****.com mynetworks = 192.168.1.0/200, 127.0.0.0/8 myorigin = $myhostname newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES relay_domains = $mydestination sample_directory = /usr/share/doc/postfix-2.6.6/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop unknown_local_recipient_reject_code = 550
mynetworks = 192.168.1.0/200
这不可能是正确的,因为没有/ 200的networking掩码。 这会导致您的后缀拒绝来自192.168.1.0networking中可信主机的邮件。
使用relay_domains你描述的方式不是它应该是怎样的。 这个语句用于你应该处理(备份)邮件的maildomains,而不是你要发送邮件的域。
澄清更多关于哪些域名在哪里列出; 你的MTA有三个重要的目的。
您将不得不收到您主持的域名的邮件。 (在postfix中,您在mydestination , virtual_alias_domains或virtual_mailbox_domains这样的域)这可以被称为MTA的inbound模式。
您将不得不作为某些域的备份MX服务器(并非总是),并在relay_domains此类域,并且您的邮件服务器将接受这些域的邮件并转发它们。 所以这可以被称为MTA的forwarding模式。
你的内部用户应该能够发送邮件给世界上其他任何人。 用户通常authentication并发送邮件,这可以被称为MTA的outbound模式。
希望这可以帮助。 这些东西在Postfix Address Classes和Postfix SASL自述文件中有明确的解释