2013-11-14 4 views
0

Для моего проекта мне пришлось создать функцию, которая отправляет два сообщения электронной почты. Один для клиента, а другой для продавца. У обоих писем будет другое содержание.Несколько вопросов электронной почты php

Я написал две функции, используя стандартную почтовую функцию PHP, как показано ниже.

  $to  = "[email protected]"; 
    $subject = 'xxxx'; 
    $message = "hello" 
    $headers .= 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    mail($to, $subject, $message, $headers); 

Теперь, проверяя систему на веб-сервере моей собственной компании, оба письма отправляются и принимаются. Однако, когда я перенес одну и ту же систему на внешний сервер. отправляется только одно электронное письмо. прежде всего, первое электронное письмо в стеке.

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

+0

Я не вижу никакого кода там посылает два сообщения электронной почты ... –

+0

Установили ли вы 'error_reporting (E_ALL)' и нечестную любые ошибки/уведомление? Использовали ли вы какие-либо другие методы отладки (например, изучив различия между обоими серверами)? – kero

+0

Похоже, что почтовый сервер продавца по какой-то причине фильтрует электронную почту как спам. Если он работает на вашем тестовом сервере, но не на внешнем сервере, вероятно, потому, что внешний сервер находится в списке блоков и не имеет никакого отношения к вашему сценарию. – Barmar

ответ

1

В вашем «отправленном» кодексе было несколько вещей, которые отсутствовали.

Отсутствующий запятой в конце $message = "hello" (если это не было/ошибка пасты опечатка?), И точка в первом $headers

Кроме того, не имея атрибут в From: заголовка, несомненно, приведет имеющий e-mail отправлено и рассматривается как СПАМ.

Исправлены эти проблемы и добавлена ​​дополнительная информация заголовка, следующий код работал и не попадал в мой СПАМ, но INBOX успешно.

<?php 
$to  = "[email protected]"; 
$email = "[email protected]"; 
$subject = 'xxxx'; 
$message = "hello"; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$headers .= "From: $email" . "\r\n" . 
"Reply-To: $email" . "\r\n" . 
"X-Mailer: PHP/" . phpversion(); 

mail($to, $subject, $message, $headers); 

?> 

Или с сообщением успеха через echo:

<?php 
$to  = "[email protected]"; 
$email = "[email protected]"; 
$subject = 'xxxx'; 
$message = "hello"; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$headers .= "From: $email" . "\r\n" . 
"Reply-To: $email" . "\r\n" . 
"X-Mailer: PHP/" . phpversion(); 

if(mail($to, $subject, $message, $headers)) 
{ 
echo "Message sent."; 
} 

else{ 
echo "Something went wrong."; 
} 

?> 

Посетите веб-сайт PHP.net для получения дополнительной информации о функциях mail() и header().

Смежные вопросы