1

PHPMailer (SMTP 経由) を使用して、Web サイト経由で電子メールを送信しています。Hmailserverを使用しているメールサーバーとしてWindows 2012サーバーを使用しています。Mailgun を使用してメールを中継しています。

私がやったこと:

  • メールガン設定をセットアップして検証しました。
  • リレーなしでサーバー経由でメールの送受信をテストしました(正常に動作します)。

私のジレンマ:

  • ある段階で、認証やホスト名などのリレー情報を述べる必要があります。これまでのところ、これを宣言できる場所が 2 つあります。以下を参照してください。

1) PHPMailer スクリプトで指定します。

$mail->IsSMTP();
$mail->host = "smtp.mailgun.org";
$mail->Username = "username";
$mail->Password = "password";

2) hmailserver admin (サーバー上) で指定します。

http://puu.sh/cJLpk/c3d548981c.png

すべてのメールをリレーしたい場合、どのようにすればよいですか?

4

1 に答える 1

2

ローカル メール サーバー (hmailserver) をリレーとして使用すると、(少なくともクライアント スクリプトの場合) 高速になり、信頼性が大幅に向上します。スクリーンショットのように、mailgun を指すように構成する必要があります。Mailgun は、リレーの認証に使用できる資格情報を提供する必要があります。

PHPMailer で送信する場合は、次のように localhost を指すように構成する必要があります。

$mail->IsSMTP();
$mail->Host = 'localhost';
$mail->Username = "username";
$mail->Password = "password";

(ローカル サーバーのユーザー名とパスワードは必要ない場合があります)。奇妙に聞こえるかもしれませんが、SMTP を localhost に使用する方が、ローカルの sendmail バイナリを呼び出す (または PHP のmail()関数を使用する) よりも高速であることがよくあります。

元のコードではhost、代わりにHost-PHPはプロパティ名の大文字と小文字を区別するため、それが実際のコードであれば失敗していたでしょう。

それだけのはずです。

他の唯一の複雑な点は、hmailserver が mailgun を通過するはずのないメッセージも送信している場合です。この場合、hmailserver 構成にさらに入る必要があります。

于 2014-11-09T19:51:18.037 に答える