PHPMailer как установить адрес электронной почты для возврата - PullRequest
0 голосов
/ 06 августа 2020

Я знаю, что существует множество руководств, но я перепробовал так много из них, но безрезультатно. Я также попытался перетасовать параметры таким образом, чтобы отправитель шел перед replyTo и наоборот, et c, но все же.

Идея состоит в том, чтобы показаться получателю так, как он пришел от something@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

1 Ответ

1 голос
/ 07 августа 2020

Адрес электронной почты для возврата - это SMTP-адрес MAIL FROM, также известный как отправитель конверта . Часто это то же самое, что и адрес From (и PHPMailer по умолчанию использует адрес отправителя в качестве отправителя), но это совершенно нормально, если он отличается (в зависимости от конфигурации DMAR C). В PHPMailer вы устанавливаете его, устанавливая свойство Sender, как вы делаете в этой строке:

$mail->Sender = 'noreply@custom.com';

Когда сервер получает сообщение, он берет отправителя конверта и добавляет его к сообщению в заголовке Return-Path; это не то, что отправляющий сервер должен когда-либо делать.

Итак, чтобы изменить адрес возврата, измените этот параметр; в большинстве случаев он не зависит от адресов отправителя и ответов. Однако обратите внимание, что Gmail может игнорировать это, если вы не настроили его как псевдоним для своего имени пользователя Gmail.

...