3

ローカルのsendmailではなくSMTPサーバーのみを使用するようにphpのmail()コマンドを構成できるかどうか誰かが知っていますか?メールが迷惑メールとしてマークされるのに問題があります。

サーバーはRedHat5Enterpriseを実行しています。

SMTPクライアントとして機能するさまざまなPHPライブラリを知っていますが、mail()がSMTPサーバーを直接使用するようにPHPを構成したいと思います。

4

5 に答える 5

1

このマニュアルページによると、Windowsでのみ可能です。

于 2009-12-01T10:55:18.830 に答える
0

これらのリンクを確認してください。

例:

更新:これを使用できますが、呼び出された各mail()関数でSMTPソケットを開いたり閉じたりします。

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>
于 2009-12-01T10:58:34.543 に答える
0

PEAR Mailパッケージを使用して、SMTP 経由で直接送信できます。SMTP メールを機能させるには、 Net_SMTPもインストールする必要があります。多くのサーバーでは、これらはデフォルトでインストールされています。これらのライブラリのコピーをローカルにダウンロードして、サイトのディレクトリまたはインクルード パスにアップロードすることもできます。これは理想的なソリューションではありませんが、機能的です。

mail()PHP のデフォルトではなく SMTP を介して送信する、古い関数のドロップイン置換を探している場合は、すべてのパラメーターを正しい順序などで設定するトランスレーター関数を作成する必要があります。ここにそのようなスクリプトの例があります - 明らかに、必要な設定に合わせて変更する必要があります: http://tltech.com/info/php-mail-via-smtp/

于 2012-06-12T21:24:43.280 に答える
0

いいえ、理由は、すべての Linux/Unix システムに「sendmail」ツールが必要だからです。この外部ツールの利点は、タイムアウトや応答のない SMTP サーバーを処理できるため、メールが実際に送信されている可能性が高くなることです。Windows 用の SMTP クライアントの実装は、"sendmail" がそこに存在しないという事実に対する回避策です。

私のアプローチは、SMTP を使用して別のサーバーと通信するだけの sendmail 互換ツールを使用することです。そのための簡単なツールは ssmtp です (ソースはこちらから入手できます) 。

于 2009-12-01T11:15:32.633 に答える
0

アップストリーム メール サーバーをリレーとして使用するように、ローカルの sendmail を構成するだけです。そうすれば、PHP 側で何も変更する必要はありません。

SMTP を使用して PHP から直接メールを送信するのは得策ではありません。エラー処理からキューイングまですべてが失われるからです。

于 2009-12-01T11:16:08.440 に答える