Frage

Ich bin mit Apache Commons E-Mail-Bibliothek E-Mails zu senden, aber ich bin nicht in der Lage, sie über GMail SMTP-Server zu senden.
Kann jemand Beispielcode zur Verfügung stellen, die mit GMail SMTP-Server und anderen funktionieren?

Ich verwende den folgenden Code, die nicht funktioniert:

String[] recipients = {"receiver@gmail.com"};

SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com");
email.setAuthentication("sender@gmail.com", "mypasswd");
email.setDebug(true);
email.setSmtpPort(465);

for (int i = 0; i < recipients.length; i++)
{
    email.addTo(recipients[i]);
}

email.setFrom("sender@gmail.com", "Me");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();
War es hilfreich?

Lösung

E-Mails an den GMail SMTP-Server gesendet erfordert Authentifizierung und SSL. Der Benutzername und das Passwort ist ziemlich geradlinig. Stellen Sie sicher, Sie haben die folgenden Eigenschaften festgelegt, damit die Authentifizierung und SSL und es sollte funktionieren.

mail.smtp.auth=true
mail.smtp.starttls.enable=true

Zum Beispielcode des folgenden Code zu aktivieren, damit TLS.

Für API-Versionen <1.3 Verwendung:
email.setTSL(true);
Das Verfahren ist für die Versionen veraltet> = 1,3, und stattdessen sollten Sie verwenden: email.setStartTLSEnabled(true);

Andere Tipps

Bitte unter einem Code finden, die funktioniert. Offensichtlich haben Sie den Apache-jar Ihres Projekts Build-Pfad hinzuzufügen.

public static void sendSimpleMail() throws Exception {
    Email email = new SimpleEmail();
    email.setSmtpPort(587);
    email.setAuthenticator(new DefaultAuthenticator("your gmail username",
            "your gmail password"));
    email.setDebug(false);
    email.setHostName("smtp.gmail.com");
    email.setFrom("me@gmail.com");
    email.setSubject("Hi");
    email.setMsg("This is a test mail ... :-)");
    email.addTo("you@gmail.com");
    email.setTLS(true);
    email.send();
    System.out.println("Mail sent!");
}

Viele Grüße, Sergiu

mit commons.email arbeitete für mich.

HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.gmail.com");
email.setSmtpPort(465);
email.setSSL(true);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top