Brad
Brad

Reputation: 12262

Sending mail from PHP script results in error

I have a script that seemed to work before but no longer does.

It is displaying this message after the script runs:

Array (
    [0] => Unrouteable address [1] => -All RCPT commands were rejected with this error:\\
    503-Unrouteable address 503 valid RCPT command must precede DATA
)
Array (
    [0] => Unrouteable address [1] => -All RCPT commands were rejected with this error:\\
    503-Unrouteable address 503 valid RCPT command must precede DATA
)
Array (
    [0] => Unrouteable address [1] => -All RCPT commands were rejected with this error:\\
    503-Unrouteable address 503 valid RCPT command must precede DATA
)

The actual function:

function emailUser($table, $subject, $message) {
    $query = "SELECT * FROM $table";
    $result=mysql_query($query);

    while($row = mysql_fetch_array($result)) {
        $i = 0;

        while($i <= 0) {
            $to = $row['email'];
            $to_all .= '<li>'.$row['email'].'</li>';
            $mail = new htmlMimeMail();
            $mail->setHTML($message);
            $mail->setSubject($subject);
            $mail->setSMTPParams('mail.site.net', 25, 'site.net');
            $mail->setReturnPath("[email protected]");
            $mail->setFrom("[email protected]");

            $mail_result = $mail->send(array($to), 'smtp');

            if (!$mail_result) {
                    print_r($mail->errors);
                    //failure
                } else {
                    //success
                }
            $i++;
        }
    }
    print '<h3>Mail successuly sent to:</h3>';
    print '<ul>'.$to_all.'</ul>';
}

Is there a better script to use? Maybe the email server has changed?

Any help is appreciated.

Upvotes: 0

Views: 1511

Answers (3)

cruizer
cruizer

Reputation: 6151

what is this htmlMimeMail class that you're using? did you write it yourself?

This is a good mail sender library for PHP: SwiftMailer

As for the reason why it used to work and now it doesn't, it's probable that the mail server configuration changed. Is it your mail server? Or is it your ISP's? I suspect that it changed its behaviour due to some spam prevention mechanism. It might be rejecting the SMTP RCPT recipients because, say, you haven't logged in first using some means (like POP before SMTP, or authenticated SMTP).

Upvotes: 0

Stephen Caldwell
Stephen Caldwell

Reputation: 5054

Are you sure that $row['email'] is the correct column?

The error seems to indicate to me that the recipient list that the function is receiving is suspect.

Upvotes: 1

Allain Lalonde
Allain Lalonde

Reputation: 93348

Try reordering to the following (setHTML is at the end):

$mail->setSubject($subject);
$mail->setSMTPParams('mail.site.net', 25, 'site.net');
$mail->setReturnPath("[email protected]");
$mail->setFrom("[email protected]");
$mail->setHTML($message);

Upvotes: 1

Related Questions