1

失敗したコードは次のとおりです。

require_once "Mail.php";

$host           = "mail.domain.com";
$username       = "USER";
$password       = "PASS";

$mailto     = $name . ' <' . $email . '>';
$subject        = 'My Subject';
$from           = 'Client Name <info@clientdomain.com>';

$headers = array (
    'From' => $from,
    'To' => $mailto,
    'Subject' => $subject
);

$smtp = Mail::factory('smtp', array (
        'host' => $host,
        'port' => '25',
        'auth' => true,
        'username' => $username,
        'password' => $password
    )
);

$mail = $smtp->send($mailto, $headers, $msg);

if (PEAR::isError($mail)) {    
    echo '<br /><br />' . $mail->getMessage();
} else {
    echo '<br /><br />Worked';
}

次のように $email 値をスクリプトに渡します。

$name = 'Joe Schmoe';
$email = 'webmaster@domain.com';
include ($_SERVER['DOCUMENT_ROOT'] . '/path/to/my/code/above.php');

スクリプトを実行すると、次のエラーが表示されます。

Failed to add recipient: webmaster@domain.com@localhost
[SMTP: Invalid response code received from server
(code: 504, response: 5.5.2 :
    Recipient address rejected: need fully-qualified address)]

$mailto 変数を次のように変更した場合:

$mailto     = $name . ' <' . $email . '>';

...次へ:

$mailto     = $name . ' <webmaster@domain.com>';

それは完全に機能します。

何が欠けているのか誰か教えてもらえますか?

4

1 に答える 1

0

の変数に@localhost追加されると思います$emailMail.php

$emailスクリプト内の変数の名前を変更してみてください。

また、スクリプトで使用die($email);して、さまざまな段階で電子メールの価値をテストすることもできます。

于 2012-05-04T15:20:27.443 に答える