簡単に解決できないと思われるこの問題があります。
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 ツールキットに既に含まれているため、問題の原因ではありません。そして、EclipseでJettyを使用しています。