我想发送远程工作的电子邮件。我配置了我的application.conf
# Testing. Set up a custom configuration for test mode
# ~~~~~
#%test.module.cobertura=${play.path}/modules/cobertura
%test.application.mode=dev
%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
%test.jpa.ddl=create
%test.mail.smtp=mock
#Testing use smtp gmail
#~~~~~~~
mail.debug=true
mail.smtp.host=smtp.gmail.com
mail.smtp.user=mymail@gmail.com
mail.smtp.pass=mypassword
mail.smtp.channel=ssl
我在/views/Mails/welcome.html和welcome.txt中创建了一个新的模板电子邮件 而我写的静态方法将是一个电子邮件发件人
package notifiers;
import play.*;
import play.libs.Mail;
import play.mvc.*;
import java.util.*;
import javax.mail.Folder;
public class Mails extends Mailer {
public static void welcome(){
setSubject("Test Send Mail");
addRecipient("target@gmail.com");
setFrom("Me <me@me.com>");
send();
}
}
我的输出控制台消息
begin function welcom()
10:30:36,857 INFO ~ From Mock Mailer
New email received by
From: me@me.com
ReplyTo: me@me.com
To: "target@gmail.com" <target@gmail.com>
Subject: Test Send Mail
text/plain; charset=UTF-8: hello world
text/html; charset=UTF-8: <html>
<body>
<p>Hello world</p>
</body>
</html>
finish function welcom()
最后我没有收到邮件。 请帮助。谢谢。
答案 0 :(得分:2)
你有一行
mail.smtp=mock
application.conf
中的某个地方。这使Play使用模拟邮件程序而不是通过SMTP服务器邮寄。默认行为是将模拟邮件程序设置为DEV模式,将SMTP邮件程序设置为PROD模式。您可以通过在配置中注释掉提到的行来更改此行为。
另请注意,您不应再使用Play 1.2.5了。目前最新版本的1.X分支是1.2.7。您的版本1.2.5包含session injection vulnerability。