Postfix,saslauthd,mysql,smtpauthentication问题

试图获得我的邮件服务器(Ubuntu 10.04)的身份validation运行,但有麻烦。 我有一个服务器后缀为SMTP设置,IMAP服务器与快递设置。 我的后缀authentication是使用赛勒斯(我还没有尝试过鸽舍)saslauth。 用户名和密码存储在MySql数据库中。 使用imap-ssllogin远程客户端(thunderbird),我可以阅读我的邮件。 我无法得到SMTP方面的工作,并将问题集中在saslauth上。

testsaslauthd -u 'username' -p 'passowrd' -s smtp 

回报

 connect() : Permission denied 

数据库中的密码是encryption的,我想这个testsaslauthd会带一个纯文本密码并encryption它。

寻找有人来帮助我通过这个工作。 林新来的邮件服务器,并没有得到一个完整的工作。 谢谢。 问我应该查看哪些日志文件/ post,运行哪些testing,检查权限。

编辑: (3/26/2012)更多的信息,我不能得到任何邮件客户端工作,他们给错误

 The message could not be sent because connecting to SMTP server <mydomain.com> failed. The server may be unavailable or is refusing SMTP connections 

我有各自的端口在iptables上打开,但我猜测,这是一个内部的问题,因为我在上面跑的testing。 我也运行telnetmail.mydomain.com 25并运行ehlo localhost并得到这个回报

 250-mail.domain.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN 

编辑: (2012年3月28日下午2时45分)

 ~$ postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix inet_interfaces = all inet_protocols = all mailbox_size_limit = 0 mime_header_checks = regexp:/etc/postfix/mime_header_checks mydestination = mail.mydomain.co, localhost, localhost.localdomain myhostname = mail.mydomain.co mynetworks = 127.0.0.0/8 myorigin = /etc/mailname proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps readme_directory = no recipient_delimiter = + relayhost = smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem smtpd_tls_key_file = $smtpd_tls_cert_file smtpd_tls_session_cache_timeout = 3600s smtpd_use_tls = yes virtual_alias_domains = virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-forwards.cf, mysql:/etc/postfix/mysql-email.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /home/vmail virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-mailboxes.cf virtual_uid_maps = static:5000 

编辑:解决(3/29/2012)感谢@AveryPane和@ malloc4k指向我在正确的方向。 我必须做的一些事情,确保我的MXlogging是在正确的顺序。 我使用工具intodns.com和http://www.mxtoolbox.com检查我的服务器是否正在接受连接。 然后使用尾巴-f我看了我的日志中的任何错误,很高兴看到实际上有东西被logging,一旦我得到我的DNSlogging理顺,并调整了一些configuration文件。

有两件事,我不知道其中之一是一些互联网服务提供商阻止端口25,这可能是在我的情况为什么thunderbird没有看到我的服务器在端口25。其次是在文件/etc/postfix/master.cf有关于允许postfix监听的端口的设置。 默认的端口25在那里

 smtp inet n - - - - smtpd 

基本上说,嗨后缀,我运行在端口25.如果你想在另一个邮件服务器端口上运行postfix,587,那么在master.cf

 587 inet n - - - - smtpd 

运行重新启动/etc/init.d/postfix restart ,你应该设置。 这是我的解决scheme。

寻找有人来帮助我通过这个工作。 林新来的邮件服务器,并没有得到一个完整的工作。

欢迎来到我的朋友的电子邮件地狱。 你在一个很好的公司。 首先,如果你真的想要运行电子邮件服务器,那么你需要学习。 电子邮件就像大多数公用事业服务一样 – 被认为是理所当然的,但没有人想要考虑使其工作的努力。 我推荐使用O'Reilly出版的书( Postfix:The Definitive Guide) ,这是获取Postfix运行信息的极好来源。

我也花时间来阅读一些基本的“游戏规则”,因为很多全球电子邮件系统基本上是一堆绅士的协议,不要跺脚,每个人的交付。 当然,你可以通过RFC 2142和其他许多文件,但是我认为我们可以把它简化为一些简单的规则:

  • 做一个负责任的pipe理员 这意味着有一个[email protected]地址,和[email protected]实际去除了一点点桶之外的东西。 将它们发送到/ dev / null是另一个登陆黑名单的好方法。 毕竟,谁愿意和那些不听别人谈论他们所提出的问题的人打交道呢?
  • 你现在是社区的一部分 。 这意味着你会碰到其他pipe理员,做了不同的事情,呃,对于如何完成事情会有不同的意见。 只要他们明智或有理由,只要放松一下,听一听。
  • 在这个社区里,你负责你自己的服务器。 如果别人发现你做了不好的事情(比如成为一个垃圾邮件开放中继 – 稍后会有更多的内容),你将被列入短名单。 尽你所能做正确的事情。
  • 运行你自己的服务器意味着你已经投入了你的资源 。 不要被垃圾邮件发送者(冒充“电子邮件营销人员”)所左右,告诉你他们有权利用自己的资源做任何他们想做的事情。 我经常以“但是 – 但这不是你的决定,这是收件人的决定,你应该让我的电子邮件通过”的forms听到这一点。 你的回答应该永远是:“这是我的决定,是我的服务器,而现在是我的黑名单上一个褪色的记忆。
  • 其他服务器不是你的资源使用; 你从他人的善意和考虑中使用他们。 善待其他pipe理员,并牢记将大量电子邮件发送到服务器的“黄金法则”。 如果有人将电子邮件转发到服务器上的2,000个不同的邮箱,您是否愿意这样做,将传送数分钟?
  • 完成所有设置并运行一段时间后, 请返回并定期检查日志 。 是的,每小时有数千个垃圾邮件发送者试图(a)将他们的猪肉副产品交给您的收件箱,或者(b)使用您作为跳板将其交付给其他人。 这导致我们…
  • 垃圾邮件发送者每几个月就会转移战术。 通常情况下,在您的反垃圾邮件设置中进行一些小调整就足以使滋扰消失。
  • 不要为了爱吃饭而在互联网的公开场合进行公开的接力。 开放中继的概念,即从任何人收取电子邮件并将其传送到任何地方的机器,是互联网是一个更友善,更温和的地方,从过去的岁月的遗物。 在今天的时代,垃圾邮件发现者会发现你,他们会把你的机器变成他们自己的个人电子邮件机关枪,他们最终会在这个过程中诽谤你的好名声。
  • 你会遇到pipe理员不关心他们的服务器 ,就像一个防御性的司机在路上寻找其他(愚蠢的)司机,你需要注意他们。
  • 错误的pipe理员通常configuration错误的服务器 那里有商业提供商只是想快速赚钱,他们并不在乎每个人在“贬低”他们的服务器时会发生什么。 这意味着你会遇到愚蠢的事情的服务器,一些pipe理员将与你打电话,并想交换吐口水为什么这是“你的问题”,而不是他们的 。 仔细检查你的服务器,确保它不是你,然后礼貌地告诉他们错误的线索,由四…

还有很多,但是这些基本的东西应该让你指出正确的方向。


我无法获得任何邮件客户端的工作,

关于您的问题中的“客户无法发送”部分,问题与您接受电子邮件的域有关。 具体来说,你的post提到:

 mydestination = myhostname = my.domain.com 

这两个都是不正确的。 在这里设置mydestination参数, 在这里为myhostname参数。 这两个参数基本上告诉后缀什么它将接受交付,根据什么是在收件人:电子邮件地址的右半部分。 让他们设置为无, my.domain.com意味着它只会接受my.domain.com交付,但它仍然不会交付,因为我的mydestination是空白的。 我可能是错的,但我不认为这就是你想要的。

问题可能出现在Cyrus设置或PAM设置中(可能Cyrus SASL在您的设置中使用PAM与MySQL进行通信)。

我build议你两件事情:

  1. 请仔细阅读Postfix文档中的适当部分: SASL_README

  2. 检查你的/var/log/auth.log