2010-04-23 115 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