2017-01-31 12 views
-2

私はPHPmailerにもう1つ問題があります(私はそれを今のところ嫌いです)。問題はそれが1つのアドレスにしか正しく送信されないことですが、2つのアドレスを試してみたところ、動作しません。これは "setFrom" idが "addAddress"と同じ場合にのみ機能します。私はPHPmailerが特定のアドレスに配信していない

$mail->addAddress('[email protected]'); 

それとも

$mail->addAddress('[email protected]'); 

私は何も受信しないにaddAddressを変更した場合は

<?php 
if (array_key_exists('email', $_POST)) { 
    date_default_timezone_set('Europe/Warsaw'); 

require 'phpmailer/PHPMailerAutoload.php'; 

$mail = new PHPMailer(true); 

$mail->isSMTP();          
$mail->Host = 'smtp.poczta.onet.pl'; 
$mail->SMTPAuth = true; 
$mail->SMTPDebug = 2;      
$mail->Username = '[email protected]'; 
$mail->Password = 'password';  
$mail->SMTPSecure = 'ssl'; 
$mail->Port = 465;  

if ($mail->addReplyTo($_POST['email'])) { 
    $mail->Subject = 'Wiadomość z formularza kontaktowego'; 
$mail->setFrom('[email protected]'); 
$mail->addAddress('[email protected]'); 

$mail->isHTML(false); 

$mail->Body = <<<EOT 
Email: {$_POST['email']} 
Imię: {$_POST['name']} 
Wiadomość: {$_POST['message']} 
EOT; 

if (!$mail->send()) { 
     $msg = 'Sorry, something went wrong. Please try again later.'; 
} else { 
     $msg = 'Message sent! Thanks for contacting us.'; 
} 
} else { 
     $msg = 'Invalid email address, message ignored.'; 
    } 
} 
?> 

:ここではスクリプトです。また

$mail->addAddress('[email protected]'); 
$mail->addAddress('[email protected]'); 
$mail->addAddress('[email protected]'); 

どちらも機能しません。何故ですか?何が問題なの? SMTPdebugは毎回同じメッセージを1つのアドレスまたは3を返します:

2017-01-31 12:09:32 SERVER -> CLIENT: 220 smtp.poczta.onet.pl ESMTP 
2017-01-31 12:09:32 CLIENT -> SERVER: EHLO dobrywebdev.pl 
2017-01-31 12:09:32 SERVER -> CLIENT: 250-smtp.poczta.onet.pl 250-PIPELINING 250-SIZE 90000000 250-ETRN 250-AUTH PLAIN LOGIN XOAUTH2 250-AUTH=PLAIN LOGIN XOAUTH2 250-ENHANCEDSTATUSCODES 250 8BITMIME 
2017-01-31 12:09:32 CLIENT -> SERVER: AUTH LOGIN 
2017-01-31 12:09:32 SERVER -> CLIENT: 334 VXNlcm5hbWU6 
2017-01-31 12:09:32 CLIENT -> SERVER: Z3JodUBvbmV0LnBs 
2017-01-31 12:09:32 SERVER -> CLIENT: 334 UGFzc3dvcmQ6 
2017-01-31 12:09:32 CLIENT -> SERVER: R3VwaWFzem1hdGEx 
2017-01-31 12:09:32 SERVER -> CLIENT: 235 2.7.0 Authentication successful 
2017-01-31 12:09:32 CLIENT -> SERVER: MAIL FROM: 
2017-01-31 12:09:32 SERVER -> CLIENT: 250 2.1.0 Ok 
2017-01-31 12:09:32 CLIENT -> SERVER: RCPT TO: 
2017-01-31 12:09:33 SERVER -> CLIENT: 250 2.1.5 Ok 
2017-01-31 12:09:33 CLIENT -> SERVER: RCPT TO: 
2017-01-31 12:09:33 SERVER -> CLIENT: 250 2.1.5 Ok 
2017-01-31 12:09:33 CLIENT -> SERVER: RCPT TO: 
2017-01-31 12:09:34 SERVER -> CLIENT: 250 2.1.5 Ok 
2017-01-31 12:09:34 CLIENT -> SERVER: DATA 
2017-01-31 12:09:34 SERVER -> CLIENT: 354 End data with . 
2017-01-31 12:09:34 CLIENT -> SERVER: Date: Tue, 31 Jan 2017 13:09:32 +0100 
2017-01-31 12:09:34 CLIENT -> SERVER: To: [email protected], [email protected], [email protected] 
2017-01-31 12:09:34 CLIENT -> SERVER: From: [email protected] 
2017-01-31 12:09:34 CLIENT -> SERVER: Reply-To: [email protected] 
2017-01-31 12:09:34 CLIENT -> SERVER: Subject: =?utf-8?Q?Wiadomo=C5=9B=C4=87_z_formularza_kontaktowego?= 
2017-01-31 12:09:34 CLIENT -> SERVER: Message-ID: <[email protected]> 
2017-01-31 12:09:34 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.22 (https://github.com/PHPMailer/PHPMailer) 
2017-01-31 12:09:34 CLIENT -> SERVER: MIME-Version: 1.0 
2017-01-31 12:09:34 CLIENT -> SERVER: Content-Type: text/plain; charset=utf-8 
2017-01-31 12:09:34 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit 
2017-01-31 12:09:34 CLIENT -> SERVER: 
2017-01-31 12:09:34 CLIENT -> SERVER: Email: [email protected] 
2017-01-31 12:09:34 CLIENT -> SERVER: Imię: xxxxxxx xxxxxxxxxxxx 
2017-01-31 12:09:34 CLIENT -> SERVER: Wiadomość: Cześć 
2017-01-31 12:09:34 CLIENT -> SERVER: 
2017-01-31 12:09:34 CLIENT -> SERVER: . 
2017-01-31 12:09:34 SERVER -> CLIENT: 250 2.0.0 Ok: queued as 3vCQ6j0vswzSv6lLW 
2017-01-31 12:09:34 CLIENT -> SERVER: QUIT 
2017-01-31 12:09:34 SERVER -> CLIENT: 221 2.0.0 Bye 

ここで問題が発生する可能性がありますか?私はその1つのアドレスから別のメールにすべての電子メールをリダイレクトすることができますが、私はそれをしたくありません。そのサーバーはエラーが発生したか、スクリプトに何かを追加する必要がありますか?

+0

ログ出力を適切にフォーマットしてください。そのまま読むのはほとんど不可能です。 – GordonM

+0

私の悪い、今より良いはずです。 – grhu

答えて

1

問題は、1つのアドレスにのみ正しく送信されますが、他の2つを試しても機能しません。

phpmailerのは、それはPHP mail()関数またはローカルMTA(通常sendmail)またはリモートSMTPサーバーのいずれかの電子メールを渡し、それが構成されている方法によって、次いで電子メールコンテンツを準備します。

いずれにしても、電子メールは最終的にそれを処理するSMTPサーバーに送信されます。 SMTPサーバーが宛先アカウントをホストする場合は、メールを格納し、そうでない場合は、受信者の電子メールアドレスのインターネットドメインを処理するSMTPサーバーにそれを渡します。

宛先に到着する電子メールがある場合は、到着していない電子メールがある場合、PHPMailerは責任を負いません。

異なるサーバーはSPAMに対して異なるポリシーを持ち、受信者の電子メールアドレスが有効な場合、最も重大な障害の原因は、これらのサーバーがあなたの郵送をSPAMと見なすということです。これは、特に短時間に複数のメールを送信しようとする場合に発生します。

この問題については、使用しているSMTPサーバーのシステム管理者(会社のIT担当者、または会社のISPの場合)と連絡する必要があります。彼らはあなたの電子メールの送信機会を増やすために、電子メールヘッダに何を入れるべきかをアドバイスすることができます。あなたの意図を知らされると、SMTPサーバーとDNSサーバー(SPFDKIM)の設定を調整して、SMTPサーバーを電子メールを送信するのに合法的なものとしてマークすることもできます。

+0

その後私のISPに連絡して、彼らの言うことを見ます。しかし、私はまだFROMを '[email protected]'とTOを '[email protected]'と設定したときに、なぜそれが動作するのか理解できません。 – grhu

関連する問題