无法使用Play Framework 1.2.5发送电子邮件

时间:2014-02-20 14:56:47

标签: java email playframework

我想发送远程工作的电子邮件。我配置了我的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()

最后我没有收到邮件。 请帮助。谢谢。

1 个答案:

答案 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