Question

  

Double possible:
   Comment envoyer des courriers électroniques à partir d'une application Java en utilisant Gmail?

Comment envoyer un message SMTP à partir de Java?

Était-ce utile?

La solution

Voici un exemple pour smtp Gmail:

import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;

import javax.mail.*;

import javax.mail.internet.*;

import com.sun.mail.smtp.*;


public class Distribution {

    public static void main(String args[]) throws Exception {
        Properties props = System.getProperties();
        props.put("mail.smtps.host","smtp.gmail.com");
        props.put("mail.smtps.auth","true");
        Session session = Session.getInstance(props, null);
        Message msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress("mail@tovare.com"));;
        msg.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse("tov.are.jacobsen@iss.no", false));
        msg.setSubject("Heisann "+System.currentTimeMillis());
        msg.setText("Med vennlig hilsennTov Are Jacobsen");
        msg.setHeader("X-Mailer", "Tov Are's program");
        msg.setSentDate(new Date());
        SMTPTransport t =
            (SMTPTransport)session.getTransport("smtps");
        t.connect("smtp.gmail.com", "admin@tovare.com", "<insert password here>");
        t.sendMessage(msg, msg.getAllRecipients());
        System.out.println("Response: " + t.getLastServerResponse());
        t.close();
    }
}

Maintenant, faites-le de cette manière uniquement si vous souhaitez minimiser les dépendances de votre projet, sinon je peux vous recommander vivement d'utiliser les classes d'apache

.

http://commons.apache.org/email/

Cordialement

Tov Are Jacobsen

Autres conseils

Une autre méthode consiste à utiliser de l'aspirine ( https://github.com/masukomi/aspirin ). comme ceci:

MailQue.queMail(MimeMessage message)

... après avoir construit votre message de mémoire comme ci-dessus.

L'aspirine est un serveur smtp, vous n'avez donc pas besoin de le configurer. Notez cependant que l’envoi de courrier électronique à un large éventail de destinataires n’est pas aussi simple qu’il apparaît en raison des nombreuses règles de filtrage du courrier indésirable appliquées aux serveurs de messagerie et aux applications client.

S'il vous plaît voir ce post

Comment puis-je envoyer un email en Application Java utilisant GMail, Yahoo ou Hotmail?

Il est spécifique à gmail, mais vous pouvez remplacer vos identifiants smtp.

Voir API JavaMail et les javadocs associés.

Voir le tutoriel suivant sur les pratiques Java.

http://www.javapractices.com/topic/TopicAction.do ? Id = 144

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*; 

public void postMail(String recipients[], String subject,
    String message , String from) throws MessagingException {

    //Set the host smtp address
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.jcom.net");

    // create some properties and get the default Session
    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(false);

    // create a message
    Message msg = new MimeMessage(session);

    // set the from and to address
    InternetAddress addressFrom = new InternetAddress(from);
    msg.setFrom(addressFrom);

    InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
    for (int i = 0; i < recipients.length; i++) {
        addressTo[i] = new InternetAddress(recipients[i]);
    }
    msg.setRecipients(Message.RecipientType.TO, addressTo);

    // Optional : You can also set your custom headers in the Email if you Want
    msg.addHeader("MyHeaderName", "myHeaderValue");

    // Setting the Subject and Content Type
    msg.setSubject(subject);
    msg.setContent(message, "text/plain");
    Transport.send(msg);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top