2015-09-10 5 views
0

Je travaille avec jWordPress qui combine Quercus et JavaMail 1.4.1 avec WordPress 4.2.2 dans un fichier WAR exécuté sous Tomcat sous Windows. J'ai des problèmes pour configurer le service de courrier électronique sortant: Par défaut, Quercus tente de contacter un serveur SMTP sur le port 25 de localhost, ce qui échoue.Configuration de l'email Quercus + WordPress

Dans le fichier WAR, Quercus est configuré via WEB-INF/web.xml qui, entre autres paramètres, a l'une (I décommenté dans le fichier d'origine) suivante:

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

I créé un WEB-INF/fichier php.ini avec les paramètres suivants pour AWS SES, qui fonctionnent bien avec JavaMail dans une autre application (notez que ceci est une connexion STARTTLS authentifié sur le port 587):

[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> 

les noms des les paramètres ci-dessus correspondent à ceux trouvés dans le MailModule de Quercus:

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

Le fichier WEB-INF/web.xml semble être traité au démarrage parce que si des erreurs sont introduites, ils sont reflétés dans le journal Tomcat ainsi que dans l'opération WordPress. Cependant, il n'y a aucune indication dans le journal que le fichier WEB-INF/php.ini est lu ou traité.

WordPress semble fonctionner correctement. Un simple test de l'email sortant WP est de cliquer sur "Connexion" sous Meta, puis sur "Mot de passe perdu?", Entrez le nom d'utilisateur WP et cliquez sur "Nouveau mot de passe". Il en résulte les avertissements suivants dans le journal 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 

Ainsi, il semble que Quercus MailModule ne voit pas les paramètres de php.ini. Comment puis-je réparer ça?

P.S. Veuillez ne pas suggérer des solutions de contournement qui nécessitent une installation de sendmail ou similaire sur le port 25 de localhost.

Répondre

0

Eh bien, il est apparu que le fichier php.ini spécifié dans

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

doit avoir un chemin absoluau lieu de simplement WEB-INF/php.ini, par exemple (J'ai expérimenté avec plusieurs chemins relatifs en vain.) Cela a résolu le problème du fichier ne pas être lu.

Cependant, un autre problème est apparu: le paramètre 'sendmail_from' dans php.ini n'a aucun effet. En regardant le code Quercus MailModule sur le lien ci-dessus, s'il y a un paramètre 'from' dans des en-têtes supplémentaires, alors il sera utilisé et le paramètre 'sendmail_from' ne sera pas utilisé du tout. WordPress semble utiliser un 'wordpress @ localhost', quel que soit le paramètre d'adresse e-mail d'administrateur configuré. Lorsque cette adresse est utilisée avec un hôte SMTP distant, l'e-mail est rejeté (AWS SES) ou accepté mais abandonné en silence (Comcast). Je publierai ceci sur SO comme un problème séparé.