PHPMailer如何设置退回邮件地址
PHPMailer how to set bounce email address
我知道有很多指南,但我试了很多都没有结果。
我还尝试重新调整参数,以便 sender 在 replyTo 之前发送,反之亦然,等等,但仍然如此。
这个想法是让收件人看到它来自某物@gmail.com,但在回复(人类或机器人作为退回邮件)时总是回复 noreply@custom.com
无论我做什么,退回的电子邮件总是投递到 something@gmail.com 而不是 noreply@custom.com
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
require 'apps/PHPMailer/src/Exception.php';
require 'apps/PHPMailer/src/PHPMailer.php';
require 'apps/PHPMailer/src/SMTP.php';
try {
$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8'; // UTF8 Encoding
$mail->Encoding = 'base64'; // Needs to be set with UTF8
//$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = "smtp.gmail.com"; // Set the SMTP server to send through
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = "something@gmail.com"; // SMTP username
$mail->Password = "somePassword"; // SMTP password
$mail->SMTPSecure = "tls";
$mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
//Sender
$mail->setFrom('something@gmail.com');
$mail->addReplyTo('noreply@custom.com');
$mail->Sender = 'noreply@custom.com';
// Recipient
$mail->addAddress('fndsgfds@fsscd.com');
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = "test bouncing";
$mail->Body = "teting";
//$mail->AltBody = strip_tags($row_campaign['text']);
$mail->MessageID = $messageId; // removed from example here, but is stated above
$mail->addCustomHeader('In-Reply-To', $messageId);
$mail->send();
}
catch (Exception $e) {
echo "Error: {$mail->ErrorInfo}";
die();
}
unset($mail);
知道问题出在哪里吗?
PHPMailer 6.1.6
退回电子邮件地址是 SMTP MAIL FROM
地址,也称为 信封发件人 。这通常与 From 地址相同(PHPMailer 默认使用发件人地址作为发件人),但不同是完全正常的(取决于 DMARC 配置)。在 PHPMailer 中,您通过设置 Sender
属性 来设置它,就像您在这一行中所做的那样:
$mail->Sender = 'noreply@custom.com';
当服务器 收到 一条消息时,它会获取信封发件人并将其添加到 Return-Path
header 中的消息中;这不是发送服务器应该曾经做的事情。
因此,要更改退回地址,请更改该设置;它主要独立于 from 和 reply-to 地址。但是请注意,如果您没有将它配置为您的 gmail 用户名的别名,gmail 可能会忽略它。
我知道有很多指南,但我试了很多都没有结果。 我还尝试重新调整参数,以便 sender 在 replyTo 之前发送,反之亦然,等等,但仍然如此。
这个想法是让收件人看到它来自某物@gmail.com,但在回复(人类或机器人作为退回邮件)时总是回复 noreply@custom.com
无论我做什么,退回的电子邮件总是投递到 something@gmail.com 而不是 noreply@custom.com
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
require 'apps/PHPMailer/src/Exception.php';
require 'apps/PHPMailer/src/PHPMailer.php';
require 'apps/PHPMailer/src/SMTP.php';
try {
$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8'; // UTF8 Encoding
$mail->Encoding = 'base64'; // Needs to be set with UTF8
//$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = "smtp.gmail.com"; // Set the SMTP server to send through
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = "something@gmail.com"; // SMTP username
$mail->Password = "somePassword"; // SMTP password
$mail->SMTPSecure = "tls";
$mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
//Sender
$mail->setFrom('something@gmail.com');
$mail->addReplyTo('noreply@custom.com');
$mail->Sender = 'noreply@custom.com';
// Recipient
$mail->addAddress('fndsgfds@fsscd.com');
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = "test bouncing";
$mail->Body = "teting";
//$mail->AltBody = strip_tags($row_campaign['text']);
$mail->MessageID = $messageId; // removed from example here, but is stated above
$mail->addCustomHeader('In-Reply-To', $messageId);
$mail->send();
}
catch (Exception $e) {
echo "Error: {$mail->ErrorInfo}";
die();
}
unset($mail);
知道问题出在哪里吗? PHPMailer 6.1.6
退回电子邮件地址是 SMTP MAIL FROM
地址,也称为 信封发件人 。这通常与 From 地址相同(PHPMailer 默认使用发件人地址作为发件人),但不同是完全正常的(取决于 DMARC 配置)。在 PHPMailer 中,您通过设置 Sender
属性 来设置它,就像您在这一行中所做的那样:
$mail->Sender = 'noreply@custom.com';
当服务器 收到 一条消息时,它会获取信封发件人并将其添加到 Return-Path
header 中的消息中;这不是发送服务器应该曾经做的事情。
因此,要更改退回地址,请更改该设置;它主要独立于 from 和 reply-to 地址。但是请注意,如果您没有将它配置为您的 gmail 用户名的别名,gmail 可能会忽略它。