On Wed, Nov 14, 2012 at 7:19 PM, Rick Dwyer <[email protected]> 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 = "[email protected]";
> $to = "[email protected]";
> $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