2012-05-14 4 views
10

Как проверить, успешно ли отправлена ​​почта mail()?Как проверить, успешно ли почта mail() отправлена ​​почтой

+0

нет выбора в inbulid функции PHP, чтобы узнать, получил ли получатель почту или нет, даже мы не можем обнаружить это действительный почтовый идентификатор или нет – user1844933

ответ

11

Ну mail() просто возвращает логическое значение в зависимости от того, была ли почта успешно принята к доставке. С php.net сайта:

Возвращает TRUE, если почта была успешно принята для доставки, FALSE в противном случае .

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

Итак, вы можете проверить, было ли оно «отправлено», однако проверка его доставки была другой историей.

+0

почты() возвращает истинное Безразлично Это означает, что письмо успешно отправлено. u может получить сообщение «Ошибка доставки почты» с сервера, который получает письмо (например, такое имя пользователя) через несколько минут – jondinham

+9

Я думаю, что это то, что я сказал ?! –

+0

о, да, ты прав :) +1 – jondinham

2

из Документов.

«возвращает TRUE, если почта была успешно принята для доставки, FALSE в противном случае

Важно отметить, что только потому, что почта была принята для доставки , это НЕ означает, что почта фактически достигнет предполагаемого пункта назначения. "

0

Функция mail() только что уведомляет вас о том, что установленная вами «электронная почта» является законной и будет отправлен мой почтовый сервер.

Вы должны проверить отдельно, что адрес электронной почты является законным. Хорошая статья не найдена here

Если эти два метода не работают для вас хорошо, вы можете использовать некоторый подход «спама», используя изображения и файлы журнала вашего сервера.

9

По Бен ответ вы можете проверить электронную почту успешно доставки, как показано ниже

$result = mail('[email protected]', 'Test Subject', $message); 
if(!$result) { 
    echo "Error"; 
} else { 
    echo "Success"; 
} 

Для лучшего результата вы можете использовать PHPMailer. Нажмите на ссылку ниже для подробной документации PHPMailer.

http://phpmailer.worxware.com/index.php?pg=tutorial

if(!$mail->Send()) { 
    echo 'Message was not sent.'; 
    echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent.'; 
} 
+0

Спасибо за ссылку Chauhan. – Sunny

-3

Вы можете использовать $_SERVER['REMOTE_ADDR'] в PHP, чтобы получить удаленный IP-адрес пользователя.

Использование так:

<?php 

    $ip = $_SERVER['REMOTE_ADDR']; 
    echo "User's IP address is: ".$ip; 

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