Почта не отправляется в почтовом пакете php pear - PullRequest
0 голосов
/ 15 августа 2011

Я пытаюсь использовать PEAR Mail для отправки с моего адреса электронной почты, используя следующий код,

<?php
include("Mail.php");
echo "This test mail for authentication";
try{
$from_name = "Test";
$to_name = "from name"; 
$subject = "hai"; 
$mailmsg = "Happy morning";



$From = "From: ".$from_name." <frommail@gmail.com>"; 
$To = "To: ".$to_name." <tomail@gmail.com>"; 

$recipients = "tomail@gmail.com"; 
$headers["From"] = $From; 
$headers["To"] = $To; 
$headers["Subject"] = $subject; 
$headers["Reply-To"] = "gunarsekar@gmail.com"; 
$headers["Content-Type"] = "text/plain"; 

$smtpinfo["host"] = "smtp.gmail.com"; 
$smtpinfo["port"] = "25"; 
$smtpinfo["auth"] = true; 
$smtpinfo["username"] = "mymail@gmail.com"; 
$smtpinfo["password"] = "mypassword"; 
//$smtpinfo["debug"]=True;
$mail_object =& Mail::factory("smtp", $smtpinfo); 

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

if (PEAR::isError($mail)) {
    echo("<p>" . $mail->getMessage() . "</p>");
} else {
    echo("<p>Message successfully sent!</p>");
}

}catch(Exception $e){
echo 'Caught exception: ',  $e->getMessage(), "\n";
}
echo "<br>Fin";
?>

этот код не возвращает никаких ошибок или предупреждений, он просто показывает "Сообщение успешно отправлено!"но, почта не получатель, чтобы отправить адрес.

может кто-нибудь, пожалуйста, сообщите, что проблема в mycode или что на самом деле происходит.,

1 Ответ

1 голос
/ 15 августа 2011

Первое, что я вижу, это то, что у вас есть ошибка: ваша проверка проверяет переменную с именем $mail, но все остальное относится к $mail_object. Если это в вашем реальном коде, то я предполагаю, что это может быть частью этого.

Некоторые базовые проверки:

  • Проверяли ли вы, что в Gmail включен POP или IMAP?
  • Вы настроили эту учетную запись с тем же именем пользователя и паролем на обычном компьютере, чтобы можно было отправлять и получать электронную почту вне PHP?
  • Убедитесь, что вы даже можете общаться с сервером GMail (по какой-то причине он не заблокирован), выполнив команду ping smtp.gmail.com или используя telnet, чтобы открыть соединение с портом 25: telnet smtp.gmail.com 25
  • Прочтите справку Gmail для отправки электронной почты.

Кроме того, выглядит так, как будто для GMail требуется TLS или SSL , что означает, что вы должны использовать порт 587 или порт 465. Я не знаю, может ли этот пакет обрабатывать зашифрованные соединения. (Даже для порта 25 GMail требует шифрования SSL.) Это может вообще помешать этому.

...