java.Sicherheit.AccessControlException: access denied (“java.net.SocketPermission" "smtp.gmail.com" "beheben")

Ich bin mit GlassFish Server 3.1 und die Java-mail-Api 1.4.5.

Szenario: ich habe ein applet, das, wenn geklickt wird, sendet er ein E-Mail-Nachricht.

Senden Sie die E-mail-arbeitet perfekt auf Netbeans AppletViewer, aber es verwandelt sich in die Hölle, wenn Hinzugefügt, um den browser und versuchen Sie zum senden der E-Mail von dort.

Habe ich stundenlang gelesen, über policy-Dateien, signed/unsigned applets...etc.

Habe ich versucht, mit dem signierten applet (eine Menge von tutorials gibt, die für die Unterzeichnung, es war ganz einfach mithilfe des keytools von java). Wenn ich es über den browser fragt er nach Erlaubnis, weil es ein selbst-signiertes Zertifikat, ich gebe es Zustimmung , aber es immer noch spuckt die gleiche Ausnahme.

Habe ich auch versucht, das ändern von java.poilcy-Datei hinzufügen

permission java.net.SocketPermission "smtp.gmail.com:587", "listen,resolve";

Aber nichts.

Ich weiß, das ist die Ausnahme, weil ich activaded die Java-Konsole im Java Control Panel. Ich weiß wirklich nicht, was anderes zu tun.

Hier ist der code, sendet der E-Mail:

    String host = "smtp.gmail.com";
    String from = *****;
    String pass = ******;
    Properties props = new Properties();
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", from);
    props.put("mail.smtp.password", pass);
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");

    Session session = Session.getDefaultInstance(props, null);
    this.message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));

    InternetAddress toAddress = new InternetAddress(this.to);
    this.message.addRecipient(Message.RecipientType.TO, toAddress);

    this.message.setSubject(this.subject);

    this.message.setText(this.body);

    Transport transport = session.getTransport("smtp");
    transport.connect(host, from, pass);
    transport.sendMessage(this.message, this.message.getAllRecipients());
    transport.close();
Sind Sie sicher, es ist das applet eher als GMail, das ist die Verbindung ablehnt?
Absolut sicher, weil es gut funktioniert mit dem AppletViewer (beim ausführen des Applets in NetBeans-Umgebung anstatt im browser)

InformationsquelleAutor Chayemor | 2012-12-10

Schreibe einen Kommentar