Ubuntu

無法通過我的郵件伺服器使用電子郵件客戶端發送郵件

  • December 24, 2011

我在 Ubuntu 10.04 上使用 postfix 和 dovecot 設置了郵件伺服器。我可以在 Thunderbird 等電子郵件客戶端上接收電子郵件,但我可以使用同一個客戶端發送電子郵件。下面是後綴配置文件 main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = mail.xxx.xxxx
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = xxx.xxxx.xxxx
smtp_bind_address = xxxxxxxxxx
mydestination = mail.xxxxxx, localhost.xxxxxx, localhost, xxxxx
relayhost = 
mynetworks =  127.0.0.0/8, 
mailbox_size_limit = 0
recipient_delimiter = +
#inet_interfaces = all
inet_protocols = all
#home_mailbox = mail/
#home_mailbox = /var/mail/%u
mailbox_command = 
smtpd_sasl_local_domain = 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
#smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
mail_spool_directory = /var/spool/mail

content_filter = 

#######################################################################################################################################
smtpd_recipient_restrictions = reject_invalid_hostname,
                               reject_non_fqdn_sender,
                               reject_non_fqdn_recipient,
                               reject_unknown_sender_domain,
                               reject_unknown_recipient_domain,
                               reject_unauth_pipelining,
               permit_sasl_authenticated,
                               permit_mynetworks,
                               reject_unauth_destination,
                               reject_rbl_client dnsbl.njabl.org,
                               reject_rbl_client cbl.abuseat.org,
                               reject_rbl_client sbl.spamhaus.org,
#                                check_recipient_mx_access hash:/etc/postfix/recipient_mx_access

smtpd_client_restrictions = permit_mynetworks,
                           permit_sasl_authenticated,
                           permit_inet_interfaces,
                           reject_rbl_client zen.spamhaus.org
                           reject_unknown_reverse_client_hostname

smtpd_sender_restrictions = reject_non_fqdn_sender,reject_unknown_sender_domain
##########################################################################################################################################
#header_checks = regexp:/etc/postfix/header_checks 

您的 main.cf 的限制性意味著您的 SMTP Thunderbird 配置不正確,或者您的身份驗證失敗,但最好的建議是實際使用命令行來明確驗證與伺服器的 SMTP 連接,並監控日誌用於驗證每個測試過程的文件:

  1. 在命令行上使用 telnet 驗證 localhost 是否支持 SMTP
  2. 監控日誌文件 /var/log/maillog(?) 以查看 Postfix 看到的內容
  3. 監控您的 sasl 身份驗證器的日誌文件,以確保 SASL 身份驗證有效。

當然,您可以通過從smtpd_client_restrictions中一次刪除一個選項來縮短您的診斷,以查看哪個選項導致您的問題,然後糾正它。

查看 Thunderbird 的 SMTP 配置,可能是該配置與您在上述 main.cf 中指定的嚴格限制不兼容。

您可能在 Thunderbird 上設置了 SMTP 以指向您的 Postfix 伺服器的公共(或私有)IP 地址。上面的 main.cf 配置要求 SMTP 伺服器只監聽來自 127.0.0.0/8 的流量。

將您的私有 IP 地址範圍添加到上面的mynetworks=127.0.0.0/8或修改 Thunderbird SMTP 配置以使用 localhost:

您還需要permit_sasl_authenticated,因此您的客戶需要指定此內容。如果您刪除了 main.cf 中的選項(重新啟動 postfix)並且您的 smtp 可以正常工作,那麼這可能是您的客戶端配置中的錯誤,或者您的身份驗證設置方式錯誤。

正如其他人所提到的,您在日誌/配置中提供的資訊以及您已經執行的診斷工作越多,其他人就越容易幫助您。

您的 postfix 配置和問題與 dovecot 和客戶端配置相互依賴。這些日誌起初可能難以理解,但它們是一個很好的資源。

祝你好運,

引用自:https://serverfault.com/questions/343960