0

PHP/Apache Docker コンテナで sendmail を介して電子メールを送信できません。誰かが単純で簡単な解決策を持っているかどうか疑問に思っています。私はシステム/サーバーの専門家ではありませんし、smtp/sendmail の専門知識も同様に圧倒されます。助けてくれてありがとう。

以下は私が受け取っているエラーです:

sendmail: 553 5.1.8 <apache@a0aca7313106>... Domain of sender address apache@a0aca7313106 does not exist

明らかに apache は私のユーザーであり、右側にあるものは私の docker コンテナー ID です。渡される pHp メール パラメータ内に「From:」ヘッダー値があるため、これがデフォルトになっている理由がわかりません。

以下のコメントでリクエストされたように、使用されている「メール」機能を追加します。この関数内にデータ、具体的には From アドレスを含む「$this->headers」があることを確認できます。

コンテナ化されていない環境でまったく同じコードを実行していることに注意してください。電子メールは正常に送信されるため、コンテナの構成の問題であると考えられます。これらは、私が変更した php.ini の領域です。他に探すべきものはありますか?

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

「localhost」をコンテナ化されていない環境にリストされている smtp サーバーに変更し、コンテナで apache を再起動しましたが、それでも上記のエラー メッセージが表示されます。

以下のコメントに記載されている参照を使用して、telnet 経由で外部 SMTP サーバーに接続できます (@mark91 に感謝)。これは私の出力/トランスクリプトです。ただし、私の電子メールが実際に受信されたことは一度もありません (受信者として自分自身を記載しました)。******** で情報をマスクしました

telnet smtp.service.******* 25
Trying *******...
Connected to *******.
Escape character is '^]'.
220 ******* ESMTP smtp.service Fri, 31 Oct 2014 14:29:16 -0400
HELO *******
250 ******* Hello [*******], pleased to meet you
MAIL FROM: *******
250 2.1.0 *******... Sender ok
RCPT TO: *******
250 2.1.5 *******... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Hello
.
250 2.0.0 s9VITGpm030795 Message accepted for delivery
4

1 に答える 1

0

この電子メールを PHP でどのように送信していますか? 少なくとも、smtp サーバーとして正しい値を設定するために、php.ini ファイルを正しく構成する必要があります。さらに、PHP のメール機能を使用している場合は、$header パラメータとして「From: foo@bar.com\r\n」を含む文字列を指定する必要があります...

于 2014-10-30T22:57:50.507 に答える