2010-04-23 117 views
1

我用下面的方法来在谷歌应用程序引擎的servlet发送电子邮件:谷歌App Engine的电子邮件

void Send_Email(String From,String To,String Message_Text) 
    { 
    Properties props=new Properties(); 
    Session session=Session.getDefaultInstance(props,null); 
    try 
    { 
     Message msg=new MimeMessage(session); 
     msg.setFrom(new InternetAddress(From,"nmjava.com Admin")); 
     msg.addRecipient(Message.RecipientType.TO,new InternetAddress(To,"Ni , Min")); 
     msg.setSubject("Servlet Message"); 
     msg.setText(Message_Text); 
     Transport.send(msg); 
    } 
    catch (Exception ex) 
    { 
     // ... 
    } 
    } 

但它不工作,我错过了什么?有没有人有电子邮件功能工作?


编辑: 我固定字符串/文本部分,但电子邮件功能仍无法正常工作,它说电子邮件被送往,但我检查了我的邮箱,都没收到。我在Google服务器上运行它,出了什么问题?

+1

捕捉所有的异常,然后忽略它们是一种优秀的方式,让你的生活变得更加困难。不要这样做。 – 2012-06-26 07:35:11

回答

3

我想通了,我需要把它作为我的Gmail地址作为发件人,否则不会发送电子邮件。

0

我对Java不太了解,但是如果你删除了try/catch的东西,你可以看到错误实际上是什么?

根据文档:

“当在开发服务器中运行的应用程序调用邮件服务来发送电子邮件,邮件将被打印到日志中的Java开发服务器不发送。电子邮件“。

什么东西在日志中显示?

+1

日志在哪里,我找不到它在项目文件夹中。 – Frank 2010-04-23 01:50:07

+0

当您在开发模式下运行时,您的日志将打印您的服务器正在运行的位置(并且邮件不会从开发服务器发送)。部署后,日志将从管理控制台中可见:http://code.google.com/appengine/docs/java/runtime.html#Logging – 2010-04-23 02:05:38

+0

是的,我在网上找到它,错误日志显示: 从servlet未捕获的异常 java.lang.IllegalArgumentException:content:String属性的长度不能超过500个字符。而是使用com.google.appengine.api.datastore.Text,它可以存储任意长度的字符串。 – Frank 2010-04-23 02:09:55