5

phpmailer を使用してメールを送信しています。

list-unsubscribe を追加すると、メールは gmail を除くすべてのアカウントに配信されます。ドロップされるだけで、スパムにはなりません。Gmail アカウントには届きません。list-unsubscribe を削除すると、Gmail アカウントに正常に送信されます。

これは私が使用している list-unsubscribe です:

List-Unsubscribe:<http://keepity.com>,<mailto:admin@keepity.com>

これはphpmailerでどのように呼び出されるかです:

$mail->AddCustomHeader("List-Unsubscribe:<http://keepity.com>,<mailto:admin@keepity.com>");

これは、phpmailer を呼び出す完全な関数です。list-unsubscribe をコメントアウトすると、メールは gmail アカウントに配信されます。そうしないと、メールが届きません。なぜ配信されないのか分かる人いますか?

static function phpmailer_sendmail($mail,$from,$fromAlias,$to,$replyTo,$replyToAlias,$subject,$html,$text) {

    require_once (JPATH_COMPONENT.DS.'PHPMailer-master/class.phpmailer.php');

    $mail = new PHPMailer(true); // by setting TRUE you enable exceptions
    $mail->IsSMTP(true); // SMTP

    $mail->SMTPAuth   = true;  // SMTP authentication
    $mail->Mailer = "smtp";

    $mail->Host= "xyz"; // Amazon SES
    $mail->Port = 465;  // SMTP Port
    $mail->Username = "xyz";  // SMTP  Username
    $mail->Password = "xyz";  // SMTP Password

    $mail->ClearAllRecipients(); 
    $mail->ClearAddresses();
    $mail->ClearCCs();
    $mail->ClearBCCs();
    $mail->ClearReplyTos();
    $mail->ClearAttachments();
    $mail->ClearCustomHeaders();
    $mail->SetFrom($from, $fromAlias);
    $mail->AddReplyTo($replyTo,$replyToAlias);
    $mail->Subject = $subject;
    $mail->IsHTML(true);  
    $mail->Body    = $html;
    $mail->AltBody = $text;
    $address = $to;
    $addressAlias = $to;
    $mail->AddAddress($address, $addressAlias);
    $mail->AddCustomHeader("List-Unsubscribe:<http://keepity.com>,<mailto:admin@keepity.com>"); 
    $mail->Send();



}
4

2 に答える 2

9

関数 addCustomHeader は 2 つの引数を取得し、unscribe 値の形式は次のようにする必要があります。

  <email_to_unscribe@email.com>, <http://url_to_unscribe.com>

これがどのように呼び出されるべきかの例です:

  $mail->addCustomHeader("List-Unsubscribe",'<admin@keepity.com>, <http://keepity.com/?email='.$address.'>');
于 2014-01-09T13:08:39.667 に答える
5

これが古いことは知っていますが、「List-Unsubscribe」の検索で Google で上位にランクされており、提供された提案はまったく正しくありません。

PHPmailer addCustomHeader は引数を 1 つしか取りません。二重引用符は、このようにヘッダー全体をラップします。

$mail->AddCustomHeader("List-Unsubscribe: <mailto:info@example.com?subject=Unsubscribe>, <http://example.com/unsubscribe.php?mailid=1234>");

List-Unsubscribe は、mailto: と、電子メールを自動的に購読解除するように設定できる URL の 2 つの引数を取ります。もちろん、mailid (または GET var と呼ばれるもの) を動的に生成することもできます。

于 2016-04-20T07:49:55.737 に答える