0

Windows の Tomcat で実行される WAR ファイルで、Quercus と JavaMail 1.4.1 を WordPress 4.2.2 と組み合わせた jWordPress を使用しています。送信メール サービスの設定に問題があります。デフォルトでは、Quercus は localhost のポート 25 で SMTP サーバーに接続しようとしますが、失敗します。

WAR ファイルでは、Quercus は WEB-INF/web.xml を介して構成されており、他の設定の中でも次のようなものがあります (元のファイルでコメントを外しました)。

<init-param>
  <param-name>ini-file</param-name>
  <param-value>WEB-INF/php.ini</param-value>
</init-param>

AWS SES 用に次の設定で WEB-INF/php.ini ファイルを作成しました。これは別のアプリの JavaMail で正常に動作します (これはポート 587 での認証済み STARTTLS 接続であることに注意してください)。

[PHP]
[mail function]
SMTP = <address of the AWS SES SMTP host>
smtp_port = 587
smtp_username = <AWS SES username>
smtp_password = <AWS SES password>
sendmail_from = <a 'no-reply' email address>

上記のパラメータの名前は、Quercus の MailModule にあるものに対応しています。

https://github.com/moriyoshi/quercus-gae/blob/master/src/main/java/com/caucho/quercus/lib/MailModule.java

WEB-INF/web.xml ファイルは起動時に処理されているように見えます。これは、エラーが導入された場合、WordPress 操作だけでなく Tomcat ログにも反映されるためです。ただし、ログには、WEB-INF/php.ini が読み取られたり処理されたりしたことは示されません。

WordPress は問題なく動作しているようです。WP 送信メールの簡単なテストは、[Meta] の下の [ログイン] をクリックし、[パスワードをお忘れですか?] で WP ユーザー名を入力し、[新しいパスワードを取得] をクリックすることです。これにより、Tomcat ログに次の警告が記録されます。

10-Sep-2015 09:57:47.836 WARNING [http-nio-8080-exec-4] com.caucho.quercus.lib.mail.MailModule.mail Quercus[] mail could not send mail to '<user email address>'

Could not connect to SMTP host: localhost, port: 25

そのため、Quercus MailModule は php.ini からの設定を認識していないようです。これを修正するにはどうすればよいですか?

PS localhost のポート 25 に sendmail などをインストールする必要がある回避策を提案しないでください。

4

1 に答える 1