Postfix 的 smtp 身份验证失败

Postfix 的 smtp 身份验证失败

我目前正在更新我的新服务器,以执行与我原来的旧服务器相同的任务(新服务器正在运行Debian 气喘吁吁, 旧服务器正在运行Debian 挤压)。

我遇到的问题是使用以下代码通过 pear 发送电子邮件:

$smtp = Mail::factory('smtp', array ('host'     => 'localhost',
                                     'port'     => '25',
                                     'auth'     => true,
                                     'username' => 'linuxUser',
                                     'password' => 'linuxPassword'));

$mail = $smtp->send($to, $headers, $text);

我可以从终端发送电子邮件

$mail [email protected] 

但是,当我尝试运行 php 脚本通过 pear 发送电子邮件时,我的 mail.log 中出现错误

邮件日志错误

postfix/smtpd[7835]: warning: SASL authentication failure: unable to canonify user 
and get auxprops
postfix/smtpd[7835]: warning: localhost[::1] SASL DIGEST-MD5 authentication failed: 
authentication failure

我将概述一些我更改的配置文件

/etc/postfix/main.cf

# SMTP Authentication
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtp_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks,
check_relay_domains, reject_unauth_destination

...     

smtpd_banner = mail.$mydomain ESMTP $mail_name  
mydomain = domain.com                           
myorigin = $mydomain                    
myhostname = mail.domain.com    
inet_interfaces = all

/etc/默认/saslauthd

START=yes
MECHANISMS="shadow"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" 

/etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd

我最初认为 SASL 用户名和密码设置不正确 - 大多数在线教程显示用户名和密码存储在单独的数据库文件中。然而,在我的例子中,用户名和密码被分配给 Linux 用户名/密码。

我不知道为什么这不起作用,这是 postfix/SMTP 错误还是 pear/php 错误?

答案1

我更改了以下配置文件

/etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

现在,身份验证可以正常工作。

相关内容