我有这个问题,我似乎无法轻易解决。
我想从 GWT webApp 中发送电子邮件。在将代码放入服务器端并按照预期使用异步接口调用它方面,我做的一切都是正确的。所以一切都很好,除了当我执行发送电子邮件功能时,我收到一个 mailexception 类型的错误和 AccessControlException 类型的内部异常"access denied (java.net.SocketPermission <my smtp server> resolve)"
。
现在我在一个普通的 Java 控制台应用程序中测试了这个功能,它运行良好。所以我想我需要添加一些代码以某种方式授予访问权限。任何人都可以帮助我吗?
这是发送电子邮件的代码:
public void SendMail(String name, String email, String message) throws EmailException{
Email email1 = new SimpleEmail();
email1.setHostName("mysmtpserver");
email1.setSmtpPort(25);
email1.setAuthenticator(new DefaultAuthenticator("myemail", "mypwd"));
email1.setTLS(false);
email1.setFrom(email);
email1.setSubject("Feedback from your website");
email1.setMsg(escapeHtml(message));
email1.addTo("targetemail");
email1.send();
}
这就是调用它的类的代码:
public class SiteDataServiceImpl extends RemoteServiceServlet implements SiteDataService {
@Override
public boolean SendEmail(String name, String email, String message) throws IllegalArgumentException {
try {
new Common().SendMail(name, email, message);
return true;
} catch (EmailException e) {
e.printStackTrace();
return false;
}
}
}
PS:起初我以为我需要包含mail.jar存档,但它已经包含在gwt工具包中,所以它不是问题的原因。我正在将 Jetty 与 Eclipse 一起使用。