2013-02-12 2 views
3

Я пытаюсь выяснить, как отобразить список неуспешных отправленных писем и способ проверить его. Я могу отобразить список отправленных писем, но я не уверен, как получить список писем, которые были безуспешно отправлены.PHP: просмотреть неуспешные письма

Вот что я использую, чтобы извлечь его из MySQLdb:

  //get the email address list 
      $query = "SELECT email FROM users 
        WHERE id IN (SELECT participant_id FROM roster AS ur WHERE ur.roster_id=".$roster['roster_id'].")"; 
      $result = mysql_query($query); 
      $emailstring2 = ""; 
      $email2 = $result; 
      while ($row = mysql_fetch_object($email2)){ 
      $emailstring2 .= $row->email. "\n "; 
} 

В разделе сообщения, я получить его с помощью:

$message .="Successful emails: \n".$emailstring2." \r\n"; 

Как бы я этого добиться?

+0

Вы спрашиваете, как узнать, не были ли отправлены электронные письма? Или как сообщить, какие пользователи еще не отправили электронные письма? –

+0

@AlexHowansky Прошу, чтобы узнать, что у пользователей еще нет писем, отправленных им из-за неудачной доставки. – Nina

ответ

6

Одно ключевое слово получит Вас те не посланные: NOT

WHERE id NOT IN 
0

Вы не можете сделать это с PHP в простой форме, как это.

Подумайте об этом как письмо, проходящее через почтовую службу. Все, что вы можете сделать, это передать письмо почтальону и надеяться, что он достигнет своего места назначения. Почтальон не вернется и не скажет вам, была ли доставка успешной, или если письмо было фактически прочитано получателем. Функция PHP mail() (и ее производные) возвращает TRUE, чтобы указать, что сообщение было принято для попыток доставки, не, что оно было успешно доставлено. (Доставка может не происходить в течение нескольких часов или дней.)

В результате, самое лучшее, что вы можете сделать, это приблизительное уведомление о доставке. Есть несколько способов, вы можете сделать это:

  • Используйте пиксель отслеживания в сообщении электронной почты, который получает пингуется, когда пользователь открывает сообщение. Однако, учитывая, что большинство почтовых клиентов в настоящее время по умолчанию «не показывать изображения», я думаю, что этот метод скорее ненадежный.
  • Отправляйте каждое сообщение с уникальным адресом получателя. Если сообщение не может быть доставлено, оно вернется к настраиваемому адресу - и это сообщение возврата может использоваться, чтобы указать, что адрес электронной почты оригинального получателя не подходит. Это, вероятно, самый точный метод, но его не просто настроить.
  • Использовать возвратные квитанции. Как и пиксели отслеживания, я думаю, что большинство почтовых клиентов по умолчанию никогда не отправляют их, так что это, вероятно, также ненадежно.
  • Использовать уведомление о состоянии доставки. Для этого потребуется использовать сервер , который поддерживает его и отправляет на сервер, который его поддерживает.
  • Отправляйте свои письма через службу, которая будет выполнять этот вид отслеживания. (Например, MailChimp или постоянный контакт)
+0

Возможно ли, что до его отправки он сохраняет электронные письма, которые не могут быть отправлены? Я могу подсчитать количество неудачных получателей, но можно ли их хранить так же, как в текстовом документе или что-то подобное? – Nina

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