4

PEAR Mail パッケージと SMTP を使用して PHP でメールを送信しようとしていますが、エラーが発生し続けますSMTP: Failed to connect socket: Connection Refused

SMTP がどのように機能するかについては何も知らないので、ご容赦ください。

これが私のコードです:

$recipients = $_SESSION['email'];
$headers["From"] = "example@example.com";
$headers["To"] = "example@example.com";
$headers["Subject"] = 'Subject Text!';
$mailmsg = $_SESSION['body'];

/* SMTP server name, port, user/password */
$smtpinfo["host"] = "mail.example.com";
$smtpinfo["port"] = "587";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = $email_user;
$smtpinfo["password"] = $email_pass;
/* Create the mail object using the Mail::factory method */
$mail_object =& Mail::factory("smtp", $smtpinfo);
/* Ok send mail */
$send = $mail_object->send($recipients, $headers, $mailmsg);
if (PEAR::isError($send)) {
    echo '<p>Error: ' . $send->getMessage() . '</p>';
} else {
    header('Location: ../../emailed.php');
}

私が知っていることは次のとおりです。

ドメインはホストゲーター、メールハンドラーは Keiro Connect です。

どのポートを経由すればよいかわかりません。サービスを確認したところ、リッスン IP アドレスは次のようになっています。

  • SMTP:全アドレス:25、全アドレス:587
  • セキュア SMTP: すべてのアドレス:465
  • SMTP Submission: すべてのアドレス:587 ※このサービスはオフになっていますが

また、SMTP 配信が DNS MX レコードを使用して直接配信するように設定されていることにも注意しました。それが何かを意味するかどうかはわかりません。

私は何を間違っていますか?すべてのパラメータを順番に取得するには、何を探す必要がありますか? どんな助けでも大歓迎です。

4

3 に答える 3

4

ポートでリッスンしているからといって、そのポートにアクセスできるわけではありません。システムまたは上流のインライン デバイスのファイアウォールがブロックしている可能性があります。

スクリプトを実行しているローカル マシンから実行するtelnet mail.example.com 587と、プロンプトが表示されますか?

于 2012-06-26T16:32:20.480 に答える
0

私は以前にそのような問題に直面しました..そして解決するために私の時間を使い果たしました...
サーバーでもスクリプトを試してください..いくつかのSMTPホストでは、ローカルマシンから電子メールを送信できない場合があります
回答(または提案)を追加するのが遅すぎます..しかし、それは誰かを助けるかもしれません..

于 2016-05-26T08:12:45.160 に答える