2014-12-30 32 views
0

当我从phpmailer发送邮件时,我想回复我收到的回复电子邮件地址,如[email protected]。但我想将其更改为[email protected]。 于是我说:phpmailer更改邮件发件人

$mail->AddReplyTo('[email protected]', 'First Last'); 

但在电子邮件给我的反应都得到(办公及管理),我想只有[email protected] 我把它改为:

$mail->Sender='[email protected]'; 
$mail->SetFrom('[email protected]','First Last'); 

我得到

SMTP Error: Data not accepted.  
SMTP server error: 5.7.1 Forged sender address: 

我PHPMailer的版本是:5.2.6

+0

你不使用任何特别的原因[最新的PHPMailer(https://开头github.com/PHPMailer/PHPMailer)? – Synchro

回答

2

所需地址的回复发件人地址前加入:

$mail->addReplyTo('[email protected]', 'Reply to name'); 
$mail->setFrom('[email protected]', 'Mailbox name');  

有了这个秩序一切正常。

addReplyTo没有AddReplyTo

替代: 可以清除的replyTo前阵:

$mail->ClearReplyTos();  
$mail->addReplyTo([email protected], 'EXAMPLE'); 
-2

我不是10 0%肯定如果你使用的是框架,但我会告诉你如何在程序化PHP中做这件事后,我给了这个解释为什么我认为这是导致这个错误。

随着你的虚拟主机你有一个电子邮件已经设置了它?也许它是使用它作为您的邮件功能中使用的默认电子邮件?无论如何只是一个想法。

我的代码:

$errors = ""; 
$email = $_POST['email']; 
$admin_email = "[email protected]"; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 
$headers = "From:". $email . "on the contact page."; 

if(empty($email)){ 
    $errors = "Email cannot be empty!"; 
}else{ 
    mail($admin_email, $subject, $message, $headers); 
    $errors = "Your email has been sent successfully. "; 
} 
+0

OP问题是关于phpmailer类的:http://phpmailer.worxware.com/ – Dharmang

+0

噢,对不起,我太早了。我没有注意到!其实我的评论现在看起来很愚蠢。大声笑! –

+0

PHPMailer几年来一直没有在worxware上维护过。它现在住在GitHub上(https://github.com/PHPMailer/PHPMailer)。 – Synchro

0

设置Sender是这样做的正确的做法,让你这样做的权利。您看到的错误可能是由接收方的SPF检查决定的 - 如果发件人域设置了SPF并且它不允许从您的IP发送,它将会以您看到的错误拒绝它。

相关问题