smtp — PHP Mailer отправляет 1 дополнительное пустое почтовое сообщение с root @ localhost

В настоящее время у меня есть эта проблема на сервере сетки MediaTemple.

Я использую PHP Mailer и у меня есть следующий код:

require_once("inc/class.phpmailer.php");

// Mail from contact form for me

$mail = new PHPMailer();
$mail -> IsSMTP();
$mail -> CharSet = "UTF-8";
$mail -> SetFrom($_POST["email"],$_POST["name"]);
$mail -> AddReplyTo($_POST["email"],$_POST["name"]);
$mail -> AddBCC("[email protected]");

$mail -> Subject = "Mail Subject";
$body = "... some html ...";
$mail -> MsgHTML($body);

// Automatic mail for the person that contacted me

$mail_customer = new PHPMailer();
$mail_customer -> IsSMTP();
$mail_customer -> CharSet = "UTF-8";
$mail_customer -> SetFrom("[email protected]","Contact");
$mail_customer -> AddReplyTo("[email protected]","Contact");
$mail_customer -> AddAddress($_POST["email"],$_POST["name"]);

$mail_customer -> Subject = "Thank you for contacting us!";
$body_customer = "... some html ...";
$mail_customer -> MsgHTML($body_customer);

$mail -> Send();
$mail_customer -> Send();

Когда все закончится, ошибок нет, но по какой-то причине я получаю три электронных письма.

  1. $ mail — от $ _POST [«email»]
  2. $ mail — от root @ localhost — у него точно такое же тело сообщения, но без данных $ _POST
  3. $ mail_customer — который поступает на $ _POST [«email»] без других писем.

Что может быть причиной этого и как я могу это исправить? Это связано с PHP Mailer или с конфигурацией сервера?

2

Решение

Попробуйте обернуть ваше первое письмо в метод и использовать конструкцию if else для запуска другого

Посмотрите на мой пример кода ниже, чтобы понять, что я предлагаю.

Попробуйте написать свой код таким образом.

Обратите внимание: Я еще не проверял это.

    require_once('../class.phpmailer.php');//MAIL SENDER 1
$mail             = new PHPMailer();

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->AddReplyTo("[email protected]","First Last");

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

$mail->AddReplyTo("[email protected]","First Last");

$address = "[email protected]";
$mail->AddAddress($address, "John Doe");

$mail->Subject    = "PHPMailer Test Subject via mail(), basic";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
//RUN THE OTHER METHOD EMAIL
mail_customer();
}

//MAIL SENDER 2 WITHIN A METHOD

function mail_customer(){
$mail             = new PHPMailer();

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->AddReplyTo("[email protected]","First Last");

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

$mail->AddReplyTo("[email protected]","First Last");

$address = "[email protected]";
$mail->AddAddress($address, "John Doe");

$mail->Subject    = "PHPMailer Test Subject via mail(), basic";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
//RUN THE OTHER METHOD EMAIL
echo 'Mail Sent';
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]