On Wed, Nov 14, 2012 at 7:19 PM, Rick Dwyer <rpdwyer@xxxxxxxxxxxxx> wrote: > 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@xxxxxxxxxxx"; > $to = "to@xxxxxxxxxxx"; > $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)); I'd suggest putting a check here to see if $smtp is a PEAR::Error object as well: if (PEAR::isError($smtp)) { echo ("<p>" . $smtp->getMessage() . "</p>"); // die or return or skip the next part, whatever } else { > $mail = $smtp->send($to, $headers, $body); > > if (PEAR::isError($mail)) { > echo("<p>" . $mail->getMessage() . "</p>"); > } else { > echo("<p>Message successfully sent!</p>"); > } } > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php