ita*_*oda 4 mysql smtp postfix saslauthd
试图在我正在运行的邮件服务器 (ubuntu 10.04) 上进行身份验证,但遇到了问题。我有一个带有用于 smtp 设置的 postfix 的服务器,带有 courier 设置的 imap 服务器。我的后缀身份验证正在使用赛勒斯(我还没有真正尝试过 dovecot) saslauth。用户名和密码存储在 MySql 数据库中。使用 imap-ssl 登录可在远程客户端 (thunderbird) 上运行,我可以阅读我的邮件。我无法让 SMTP 端工作,并将问题集中在 saslauth。
测试
testsaslauthd -u 'username' -p 'passowrd' -s smtp
Run Code Online (Sandbox Code Playgroud)
返回
connect() : Permission denied
Run Code Online (Sandbox Code Playgroud)
数据库中的密码是加密的,我猜这个 testaslauthd 将采用纯文本密码并对其进行加密。
找人来引导我完成这项工作。我是邮件服务器的新手,从来没有完全工作过。谢谢。问我应该查看/发布哪些日志文件,要运行哪些测试,要检查的权限。
编辑: (2012 年 3 月 26 日)有关更多信息,我无法让任何邮件客户端正常工作,他们给出了类似的错误
The message could not be sent because connecting to SMTP server <mydomain.com> failed. The server may be unavailable or is refusing SMTP connections
Run Code Online (Sandbox Code Playgroud)
我在 iptables 上打开了各自的端口,但我猜测这是一个内部问题,因为我在上面运行了测试。我也运行telnet到mail.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
Run Code Online (Sandbox Code Playgroud)
编辑:(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
Run Code Online (Sandbox Code Playgroud)
编辑:已解决(3/29/2012) 感谢@AveryPane 和@malloc4k 为我指明了正确的方向。我必须做一些事情,确保我的 MX 记录顺序正确。我使用了工具 intodns.com 和http://www.mxtoolbox.com来检查我的服务器是否正在接受连接。然后使用 tail -f 我查看了我的日志是否有任何错误,很高兴看到在我理顺 DNS 记录并调整了一些配置文件后实际上有一些东西被记录了下来。
我不知道的两件事之一是一些 ISP 阻止了端口 25,这可能是我的情况下为什么雷鸟没有在端口 25 上看到我的服务器。文件中的第二个/etc/postfix/master.cf是关于允许哪些端口的设置后缀来听。默认端口 25 在那里
smtp inet n - - - - smtpd
Run Code Online (Sandbox Code Playgroud)
这基本上说 hi im postfix,我在端口 25 上运行。如果你想在另一个端口上运行 postfix,587 是邮件服务器常用的,请在 master.cf 中附近添加这一行
587 inet n - - - - smtpd
Run Code Online (Sandbox Code Playgroud)
运行重新启动/etc/init.d/postfix restart,你应该设置。这就是我的解决方案。
找人来引导我完成这项工作。我是邮件服务器的新手,从来没有完全工作过。
欢迎来到电子邮件地狱,我的朋友。你们相处得很好。首先,如果你真的很想运行一个电子邮件服务器,你会想要学习。电子邮件就像大多数公用事业服务一样——被认为是理所当然的,但没有人愿意考虑让它发挥作用所涉及的工作。我会推荐 O'Reilly 的优秀(并且非常简短)的书Postfix: The Definitive Guide,它是有关运行 Postfix 的极好信息来源。
我还会花时间阅读一些基本的“游戏规则”,因为许多全球电子邮件系统基本上是一堆绅士协议,不跺脚彼此交付。当然,您可以翻阅大量的文档,例如RFC 2142和其他文档,但我认为我们可以将其浓缩为一些简单的规则:
还有很多很多,但这些基本的东西应该让你指向正确的方向。
我无法让任何邮件客户端工作,
关于您问题的“客户端无法发送”部分,问题与您接受电子邮件的域有关。具体来说,您的帖子提到:
mydestination =
myhostname = my.domain.com
Run Code Online (Sandbox Code Playgroud)
这两个都不正确。看看这里设置的mydestination参数,这里的myhostname参数。这两个参数基本上告诉 postfix 它将接受哪些交付,基于 To: 电子邮件地址的右半部分。将它们设置为空my.domain.com意味着它只会接受交付,my.domain.com但它仍然不会交付它,因为它mydestination是空白的。我可能是错的,但我认为这不是你想要的。
| 归档时间: |
|
| 查看次数: |
4688 次 |
| 最近记录: |