Pear Mail - Trap for errors?
| From: | Rick Dwyer | Date: | Thu, 15 Nov 2012 01:19:38 +0000 |
| Subject: | Pear Mail - Trap for errors? | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-319708@lists.php.net to get a copy of this message | ||
Hello all.
I have some Pear Mail code composing an email and sending it to an external smtp server for sending.
The issue is determining whether that external server actually accepted the mail or not. In the
IF(PEAR… code below, it will return success even if I leave the $to value empty. However, if I
remove the smtp username or password, it will return an error indicating it could not reach the
remote server. So the Pear::IsError function seems to only reflect if the intended server was
accessible… and not if the intended server accepted the outgoing email for delivery.
Anyone have experience with the scenario below… specifically with determining if the smtp server
accepted the mail for delivery?
Thanks for any info.
--Rick
require_once "Mail.php";
$from = "from@address.com";
$to = "to@address.com";
$subject = "Hello!";
$body = "Hello!";
$host = "mail.host.net";
$username = "myuser";
$password = "mypass";
$headers = array ('From' => $from,'To' => $to,'Subject' =>
$subject);
$smtp = Mail::factory('smtp',array ('host' => $host,'auth' =>
true,'username' => $username,'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}