web-dev-qa-db-ja.com

SetFromPHPMailerが機能しない

私はphpmailerライブラリの助けを借りてメールを送信するためにGmailSMTPを使用しています。正常にメールを送信していますが、SetFromアドレスで設定したメールアドレスからは送信していません。これが私のコードです:

<?php
require 'phpmailer/class.phpmailer.php';
$mail = new PHPMailer;

$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "[email protected]";
$mail->Password = "gmail_password";

$mail->From         = '[email protected]';
$mail->FromName     = 'Admin';
$mail->AddAddress('[email protected]', 'Receiver');  // Add a recipient
$mail->IsHTML(true);

$mail->Subject = 'Here is the Subject';
$mail->WordWrap = 50;  
$mail->Body = "This is in <b>Blod Text</b>";
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->Send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

echo 'Message has been sent';
?>

[email protected]からメールを送信していますが、$ mail-> Fromで設定されている「[email protected]」で送信したいと思います。どんな助けでも大歓迎です。

9
Prem Baranwal

はい、これはGoogleMailの制限です。 「差出人」のメールアドレスは一致する必要があります。そうでない場合は、GoogleSMTPによって自動的に設定されます。

私の解決策は追加することでした

$mail->AddReplyTo($FromEmail, $FromName);

このようにして、少なくともメッセージに返信すると、説明どおりに配信されます

8
Senixon

Phpmailerでアドレスから設定する別の方法があり、より適切にサポートされています。 phpmailerを使用したサーバーが、同じホストから別のサーバーに電子メールを渡さなかったことがわかりました。しかし、その後、差出人アドレスの設定方法を変更すると、問題が解決します。

使用する:

$mail->SetFrom('[email protected]', 'Admin');

$ mail-> Fromおよび$ mail-> FromNameの代わりに。

7
JarnoV

sentFromとして別のメールアドレスを使用する場合は、Gmail設定からメールを設定できます。

設定>アカウントとインポート>メールの送信者:使用する別のメールを設定:

zohoを使用している場合は、次の手順を実行できます。[設定]> [メール]タブ> [名前を付けてメールを送信]> [差出人アドレスから追加]、そのメールを確認します。

3
Jyohul