Phpmailer与postfix

时间:2014-01-15 19:49:04

标签: php email postfix-mta

我有两个服务器,一个是电子邮件服务器,另一个是Web服务器,但我有一个需要发送电子邮件的应用程序,为此我使用的是phpmailer,一开始我使用gmail并且工作正常,但现在我必须使用我自己的电子邮件服务器,因为服务器正在运行postfix,但我可以让它工作

这是我的phpmailer代码

public function __construct() { {
        $this->mail = new PHPMailer();
        $this->mail->isSMTP();
        $this->mail->SMTPSecure = false;    
        $this->mail->Host = 'xxxx.xxxx.xxxx.xxxx';
        $this->mail->Port = 25;
        $this->mail->Username = 'root@mydomain.com';
        $this->mail->Password = '';
        $this->mail->SetFrom('user', 'My Page');
    }

后缀配置

# 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/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mydomain.com, localhost, localhost.localdomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

当我尝试从我的应用程序发送电子邮件时,我收到以下错误

SMTP -> FROM SERVER:220 mydomain.com ESMTP Postfix (Ubuntu)
CLIENT -> SMTP: EHLO www.mydomain.com
SMTP -> FROM SERVER: 250-mydomain.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
CLIENT -> SMTP: MAIL FROM:
SMTP -> FROM SERVER:250 2.1.0 Ok
CLIENT -> SMTP: RCPT TO:
SMTP -> FROM SERVER:454 4.7.1 : Relay access denied
SMTP -> ERROR: RCPT not accepted from server: 454 4.7.1 : Relay access denied
SMTP Error: The following recipients failed: account@hotmail.com Error

事实是,这是我第一次配置和发送电子邮件服务器,我不知道现在该做什么。

我从命令行测试了postfix并且正常工作。

1 个答案:

答案 0 :(得分:-1)

我最近遇到了类似的问题.. [https://serverfault.com/questions/646409/how-do-i-configure-postfix-to-allow-phpmailer-to-send-out-email-through-it][1]

我可以通过在postfix master.conf中添加以下内容来修复。

smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

有关smtpd_recipient_restrictions的更多信息,请注意这个Linux postfix/dovecot 554 Relay access denied