我有这个问题,我似乎无法轻易解决。
我想从GWT webApp发送电子邮件。在将代码放入服务器端并使用Async接口调用它时,我做了一切正确的事情。所以一切都好,除了当我执行send email函数时,我得到一个类型为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工具包中了,所以它不是问题的原因。我在Eclipse中使用Jetty。答案 0 :(得分:0)
好的,这可能听起来很奇怪,但我在开发服务器(linux)上部署了代码,它就像一个魅力。
在我的机器上有一个Windows,它仍然无法正常工作,但仍然会出现同样的错误。但由于它适用于开发机器,我很高兴。
然而,这仍然无法解释原因......