2013-12-15 24 views
0

Я нашел некоторый код php онлайн и внес некоторые изменения в него, чтобы он работал для меня. Целью этого является отправка электронной почты получателю с сообщением, которое я хочу, из моего письма в моем домене. Он работал для меня несколько писем, но когда я отправить электронную почту к списку писем у меня есть, я получаю ошибку обратно в мой почтовый ящик со следующим текстомОшибка отправки электронной почты PHP

Title - "Undelivered Mail Returned to Sender" 

Message - " 
This is the mail system at host gateway06.websitewelcome.com. 

I'm sorry to have to inform you that your message could not 
be delivered to one or more recipients. It's attached below. 

For further assistance, please send mail to postmaster. 

If you do so, please include this problem report. You can 
delete your own text from the attached returned message. 

        The mail system 

<[email protected]>: host mailin-04.mx.aol.com[64.12.88.131] said: 550 
    5.1.1 <[email protected]>: Recipient address rejected: aol.com (in 
    reply to RCPT TO command)" 

код, который я использую, чтобы отправить электронная почта получателю такова, как показано ниже:

<?php 
include("Mail.php"); 

$recipients = $_GET['email']; 

$headers["From"] = ""; 
$headers["To"]  = $recipients; 
$headers["Subject"] = ""; 

$body = ''; 

$params["host"] = ""; 
$params["port"] = "25"; 
$params["auth"] = true; 
$params["username"] = ""; 
$params["password"] = ""; 

// Create the mail object using the Mail::factory method 
$mail_object =& Mail::factory("smtp", $params); 

$mail_object->send($recipients, $headers, $body); 

?> 

Что я делаю неправильно? Почему это работает для некоторых получателей (я пытался с двумя людьми, использующими электронные письма @ gmail.com), а не для других?

+0

Ничто не кажется неправильным; у вас есть электронные письма, которые больше не существуют или никогда не были, поэтому система их отклоняет и, к счастью, информирует вас. –

+0

'550 5.1.1' означает, что адрес электронной почты недействителен. Этого не существует. –

ответ

2

Сценарий прекрасно & четко послал сообщение. Письмо просто отскочило, что не является фактором сценария, но из-за сбоя процесса переноса почты. При этом это выглядит так:

  1. Адрес электронной почты, который является просто неправильным или мертвым.
  2. Письма с вашего сервера отклоняются AOL.com, потому что они не соответствуют их критериям для электронной почты (aka: non-spam). Необходимо либо установить запись PTR, либо отредактировать записи SPF.

Будет расширяться по очкам номер 2 на основе моих личных впечатлений: AOL.com довольно хорошо известен как получатель, который откажется от сообщений, если они не соответствуют определенным стандартам. Наиболее распространенным я сталкиваюсь с отсутствием PTR (иначе: обратная запись DNS) на части отправляющей машины. Или, возможно, запись SPF (Policy Policy Framework) для вашего домена, не проверяющая ваш IP-адрес.

PTR & SPF являются темы на себя, но у меня есть шестое чувство, что один или оба из них должны быть установлены на вашей стороне, как отправитель, чтобы получить электронную почту, чтобы правильно отправить AOL.com.

0

Ваше письмо отскочено. Ваша почтовая система работает правильно, но ваш адрес «TO» не принял ваш адрес электронной почты по причинам X.

http://en.wikipedia.org/wiki/Bounce_message

+0

Так что я ничего не могу сделать, чтобы убедиться, что он отправлен на мою сторону? – Tyluur

+0

Что это значит? Вид подтверждения? На самом деле, нет. Вы можете просто проверить, дает ли ваш почтовый сервер истину или ложь при отправке электронной почты, но я не знаю, что находится внутри вашей функции send(). – zeflex

+0

Как я могу проверить, дал ли мой почтовый сервер true или false? – Tyluur

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