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 にあるものに対応しています。
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 などをインストールする必要がある回避策を提案しないでください。