나는 사용자가 양식을 채울 때 전자 메일을 보내는 간단한 응용 프로그램을 개발해 왔습니다.Mail 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
다행 이네요. –