我有两个服务器,一个是电子邮件服务器,另一个是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并且正常工作。
答案 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