问题
When I send mail from phpmailer and I wanted to response I get response e-mail address like admin@domain.com. But I want change it to office@domain.com. So I added:
$mail->AddReplyTo('office@domain.com', 'First Last');
But in e-mails to response I get both (office and admin) and I want only office@domain.com I changed it to:
$mail->Sender='admin@domain.pl';
$mail->SetFrom('office@domain.pl','First Last');
I get
SMTP Error: Data not accepted.
SMTP server error: 5.7.1 Forged sender address:
My phpmailer version is: 5.2.6
回答1:
The reply to addresses needed to be added before the from address:
$mail->addReplyTo('replyto@email.com', 'Reply to name');
$mail->setFrom('mailbox@email.com', 'Mailbox name');
With this order all is OK.
addReplyTo not AddReplyTo
Alternative: You can clear replyTo array before:
$mail->ClearReplyTos();
$mail->addReplyTo(example@example.com, 'EXAMPLE');
回答2:
Setting Sender
is the correct approach to do this, so you're doing that right. The error you are seeing is probably down to SPF checks at the receiver - if the sender domain has SPF set up and it does not allow sending from your IP, it will reject it with the error you are seeing.
来源:https://stackoverflow.com/questions/27701411/phpmailer-change-mail-sender