我一直在開發一個簡單的應用程序,它是當用戶填寫表單時發送給我的電子郵件。郵件API免費配額沒有結算?
我遵循教程和複製示例代碼。但是,當我嘗試運行它,它拋出以下異常:
javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract int com.pablo.pabloweb.client.communication.SendEmailService.send(java.lang.String)' threw an unexpected exception: com.google.apphosting.api.ApiProxy$FeatureNotEnabledException: The Socket API will be enabled for this application once billing has been enabled in the admin console. at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248) ...
我的問題是:有沒有辦法使用郵件API不設置結算明細?通過任何方式,我的申請不可能超過限制。
在它需要的情況下,這是導致異常的代碼:
public boolean actualSend(String msgText, String subject) {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("admin-gmail-email-address"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("another-personal-email-address"));
msg.setSubject(subject);
msg.setText(msgText);
Transport.send(msg);
return true;
} catch (AddressException e) {
return false;
} catch (MessagingException e) {
return false;
}
}
謝謝,這似乎是解決方案。重新閱讀文檔我發現:「所有需要的JavaMail類都包含在App Engine SDK中,不要將Oracle®的JavaMail JAR添加到您的應用程序中,否則應用程序將拋出異常。」 但是,刪除jar會引發另一個異常:「java.lang.NoClassDefFoundError:javax/mail/internet/AddressException」 – NublicPablo
我已經解決了這個問題。我沒有添加appengine-api-1.0-sdk。*。jar來構建路徑。現在它正在工作。 – NublicPablo
很高興現在正在工作。 –