1. Introducción al correo electrónico
Un correo electrónico consta de mucha información. La información principal es la siguiente. Otras no se consideran por el momento, como copia al carbón, etc.:
1. Destinatario: dirección de correo electrónico del destinatario, como xxx@xx.com
2. Nombre del destinatario: se mostrará cuando se muestren la mayoría de los correos electrónicos, como loadfate 779554589@qq.com
3. Remitente: dirección de correo electrónico del remitente
4. Nombre del remitente:
5. Asunto: el título del correo electrónico.
6. Contenido y archivos adjuntos: el contenido principal del correo electrónico
2. Pasos generales para enviar correos electrónicos usando Java
En los proyectos generales, no existe un servidor de correo independiente. En general, se utilizan servidores de otras personas.
1. Configure el servidor SMTP: diferentes servidores de correo tienen diferentes direcciones. Por ejemplo: smtp.qq.com representa el servidor SMTP de Tencent.
2. Autorización: utilice la cuenta y la contraseña del servidor para iniciar sesión en el servidor.
3. Cree un correo electrónico: cree un correo electrónico que contenga toda la información, como remitente, destinatario, contenido, etc.
4. Establecer las propiedades del correo electrónico: agregue datos a las propiedades del correo electrónico.
5. Envío de correos electrónicos: debido a que los paquetes son diferentes, los métodos de envío son inconsistentes.
3. Correo Java y Correo Apache
Apache Mail es una encapsulación de Java Mail, que es más fácil de usar y tiene un mejor sentido de jerarquía lógica.
Para utilizar Java Mail, sólo necesita importar un paquete jar: mail.jar.
Cuando utiliza Apache Mail, necesita importar dos paquetes jar: mail.jar y commons-email-1.3.1.jar.
4. Utilice Java Mail para enviar correos electrónicos
Copie el código de código de la siguiente manera:
public static void main (String [] args) lanza una excepción {
usuario de cadena final = "779554589";
contraseña de cadena final = "";
Cadena de dirección = "779554589@qq.com";
String toAddress = "loadfate@163.com";
Asunto de cadena = "Asunto de prueba de correo electrónico";
String content = "Este es un correo electrónico de prueba<b>jaja</b>";
//Parámetros de configuración
Propiedades accesorios = nuevas Propiedades();
props.setProperty("mail.smtp.auth", "verdadero");
props.setProperty("correo.transport.protocol", "smtp");
props.setProperty("correo.host", "smtp.qq.com");
//Método 1: utilizar un objeto de transporte para enviar correo electrónico
{
//Generar sesión mediante parámetros
Sesión sesión = Session.getInstance(props);
//Habilitar el modo de depuración
sesión.setDebug(verdadero);
//Crear un correo electrónico y establecer información
Mensaje mensaje = nuevo MimeMessage(sesión);
message.setFrom(nueva Dirección de Internet(desdeDirección));
mensaje.setSubject(asunto);
mensaje.setText(contenido);
//Crear transferencia
Transporte transporte = session.getTransport();
//Conectarse al servidor smtp
transporte.connect(usuario, contraseña);
//enviar
transport.sendMessage(mensaje, nueva dirección de Internet[] { nueva dirección de Internet(aDirección) });
transporte.close();
}
//Método 2: utilizar el método estático de la clase Transporte para enviar correos electrónicos
{
//Obtener conexión autorizada al generar sesión
Sesión sesión = Session.getInstance(props, nuevo Autenticador() {
@Anular
autenticación de contraseña protegida getPasswordAuthentication() {
devolver nueva ContraseñaAuthentication(usuario, contraseña);
}
});
sesión.setDebug(verdadero);
//Crear un correo electrónico y establecer información
Mensaje mensaje = nuevo MimeMessage(sesión);
mensaje.setSubject(asunto);
message.setFrom(nueva Dirección de Internet(desdeDirección));
message.setRecipient(RecipientType.TO, nueva dirección de Internet(toAddress));
mensaje.setContent(contenido, "text/html;charset=utf-8");
//Enviar directamente, el mensaje se genera a través de la sesión autorizada
Transporte.enviar(mensaje);
}
}
5. Utilice Apache Mail para enviar correos electrónicos
Copie el código de código de la siguiente manera:
clase pública ApacheMailTest {
// servidor smtp
cadena privada hostName = "smtp.qq.com";
//Cuenta y contraseña
nombre de usuario de cadena privada = "779554589";
contraseña de cadena privada = "Esto es un secreto";
// remitente
Cadena privada fromAddress = "779554589@qq.com";
// nombre del remitente
cadena privada fromName = "loadfate";
public static void main (String [] args) lanza una excepción {
//Destinatario y nombre del destinatario
String toAddress = "loadfate@163.com";
String toName = "destino de carga";
Prueba ApacheMailTest = nueva ApacheMailTest();
// Todas las excepciones se manejan para facilitar la navegación
test.sendSimpleEmail(aDirección, aNombre);
test.sendHtmlEmail(aDirección, aNombre);
test.sendMultiPartEmail(aDirección, aNombre);
System.out.println("Envío completado");
}
//Envía un correo electrónico simple, similar a un mensaje
public void sendSimpleEmail (String toAddress, String toName) lanza una excepción {
Correo electrónico SimpleEmail = nuevo SimpleEmail();
email.setHostName(hostName);//Establecer servidor SMTP
email.setAuthentication(nombre de usuario, contraseña);//Establecer información de autorización
correo electrónico.setCharset("utf-8");
email.setFrom(fromAddress, fromName, "utf-8");//Establecer información del remitente
email.addTo(toAddress, toName, "utf-8");//Establecer información del destinatario
email.setSubject("Asunto de prueba");//Establecer el asunto
email.setMsg("¡Esta es una prueba simple!");//Establece el contenido del correo electrónico
email.send();//Enviar correo electrónico
}
//Enviar correo electrónico con contenido HTML
public void sendHtmlEmail (String toAddress, String toName) lanza una excepción {
Correo electrónico HtmlEmail = nuevo HtmlEmail();
correo electrónico.setHostName(hostName);
email.setAuthentication(nombre de usuario, contraseña);
correo electrónico.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(desdeDirección, desdeNombre, "utf-8");
email.setSubject("Este es un correo electrónico html");
// Establece el contenido html. En el uso real, puedes leer el código html escrito en el texto.
email.setHtmlMsg("<div style='width:100px;height:200px;'>a</div>");
correo electrónico.enviar();
}
//Enviar correos electrónicos complejos, incluidos archivos adjuntos, etc.
public void sendMultiPartEmail (String toAddress, String toName) lanza una excepción {
Correo electrónico MultiPartEmail = nulo;
correo electrónico = nuevo MultiPartEmail();
correo electrónico.setHostName(hostName);
email.setAuthentication(nombre de usuario, contraseña);
correo electrónico.setCharset("utf-8");
email.addTo(toAddress, toName, "utf-8");
email.setFrom(desdeDirección, desdeNombre, "utf-8");
email.setSubject("Este es un correo electrónico con archivos adjuntos");
email.setMsg("<a href='#'>Contenido de prueba</a>");
//Agregar contenido adicional al correo electrónico
Archivo adjunto de EmailAttachment = nuevo EmailAttachment();
adjunto.setPath("D://mail.txt");//archivo local
// adjunto.setURL(nueva URL("http://xxx/a.gif"));//archivo remoto
adjunto.setDisposition(EmailAttachment.ATTACHMENT);
adjunto.setDescription("Información de descripción");
// Establece el nombre para mostrar del archivo adjunto, que debe estar codificado; de lo contrario, el chino será confuso
adjunto.setName(MimeUtility.encodeText("Mail.txt"));
//Agregar archivo adjunto al correo electrónico
correo electrónico.attach(adjunto);
correo electrónico.enviar();
}
}
6. Carpeta de proyecto adjunto: maildemo
Dirección de descarga: http://pan.baidu.com/s/1bn1Y6BX
Si tienes alguna pregunta o sugerencia, por favor contacta conmigo.
Descripción del archivo:
1. maildemo.zip: código fuente de maildemo
2. mail.jar: paquete Jar de Java Mail
3. commons-email-1.3.1.jar: paquete jar de Apache Mail