Pregunta

Posible duplicado:
¿Cómo se envía un correo electrónico desde una aplicación Java usando Gmail?

¿Cómo envío un mensaje SMTP desde Java?

¿Fue útil?

Solución

A continuación se muestra un ejemplo de SMTP de 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();
    }
}

Ahora, hágalo de esta manera sólo si desea mantener las dependencias de su proyecto al mínimo; de lo contrario, puedo recomendar encarecidamente el uso de clases de Apache.

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

Saludos

Tov Are Jacobsen

Otros consejos

Otra forma es usar aspirina (https://github.com/masukomi/aspirin) como esto:

MailQue.queMail(MimeMessage message)

..después de haber construido su mensaje mime como se indicó anteriormente.

Aspirina es un 'servidor' smtp para que no tenga que configurarlo.Pero tenga en cuenta que enviar correo electrónico a un amplio conjunto de destinatarios no es tan simple como parece debido a las diferentes reglas de filtrado de spam que aplican los servidores de correo y las aplicaciones cliente.

Por favor vea esta publicación

¿Cómo puedo enviar un correo electrónico mediante una aplicación Java usando GMail, Yahoo o Hotmail?

Es específico de Gmail pero puedes sustituirlo por tus credenciales SMTP.

Ver el API de correo Java y javadocs asociados.

Consulte el siguiente tutorial en Prácticas de 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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top