0

簡単に解決できないと思われるこの問題があります。

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を使用しています。

4

1 に答える 1

0

これは奇妙に聞こえるかもしれませんが、コードを開発サーバー (Linux) にデプロイしたところ、魅力的に機能しました。

私のマシンの Windows では、まだ動作せず、同じエラーが発生します。でも開発機で動くので満足です。

しかし、これはまだ理由を説明していません....

于 2011-06-24T22:04:57.597 に答える