~Java4Beginners~
~Java4Beginners~

Beispiel SMTP-Versand mit Authentifikation


import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * Mailing-Klasse
 * @author Markus Badzura
 * @version 1.0
 */
public class mymail 
{
    ///////////////////////////////////////////////////////////////////////////
    //                                                                       //
    // Anmeldedaten SMTP-Server                                              //
    //                                                                       //  
    ///////////////////////////////////////////////////////////////////////////    
    private String smtpHost = "** SMTP-Server-Name";
    private String username = "** Benutzername auf SMTP-Server**";
    private String password = "** Kennwort auf SMTP-Server**";
    ///////////////////////////////////////////////////////////////////////////
    //                                                                       //
    // eMail-Adresse Absender                                                //
    //                                                                       //  
    ///////////////////////////////////////////////////////////////////////////    
    private String senderAddress = "**Absender eMail-Adresse**";
    /**
     * EMail absenden über smtp mit Authentifizierung
     * EMail wird an die sender-Adresse ebenfalls geschickt.
     * @param empfaengerEmail eMail-Adresse des Empfängers als String
     * @param betreff Nachricht der Betreffzeile als String
     * @param nachricht zu übermittelnde Nachricht als String
     * @author Markus Badzura
     * @version 1.0
     */
    public void sendMail(String empfaengerEmail,String betreff,String nachricht )
    {
        MailAuthenticator auth = new MailAuthenticator(username, password);
        Properties properties = new Properties();
        properties.put("mail.smtp.host", smtpHost);
        properties.put("mail.smtp.auth", "true");
        Session session = Session.getDefaultInstance(properties, auth);
        try 
        {
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(senderAddress));
            msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(empfaengerEmail, false));
            msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(senderAddress, false));
            msg.setSubject(betreff);
            msg.setText(nachricht);
            Transport.send(msg);
        }
        catch (MessagingException e) 
        {
        }
    }
    /**
     * Innere Klasse Authenicator für das Anmelden am SMTP-Server
     * zur eMail-Übermittlung. Bezieht seine Daten aus der Variablen-
     * deklaration
     * @author Markus Badzura
     * @version 1.0
     */
    class MailAuthenticator extends Authenticator 
    {
        private final String user;
        private final String password;
        public MailAuthenticator(String user, String password) 
        {
            this.user = user;
            this.password = password;
        }
        @Override
        protected PasswordAuthentication getPasswordAuthentication() 
        {
            return new PasswordAuthentication(this.user, this.password);
        }
    }    
}
Der Aufruf erfolgt von ausserhalb mit:

        mymail wm = new mymail();
        String emailempfaenger = "**eMailAdresse des Empfängers**";
        String betreff = "**Text in der Betreffzeile**";
        String nachricht = "**Ihre Nachricht zur Übermittelung**";
        wm.sendMail(tempemail, betreff, nachricht);
                                                
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-04-21