English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Enviar E usando aplicaciones Java-JavaMail es muy simple, pero primero debes instalar la API JavaMail y el Java Activation Framework (JAF) en tu máquina.
Puedes descargar la última versión desde el sitio web de Java, JavaMail, abre la página de la derecha y hay un Descargas haga clic en él para descargar.
Puedes descargar la última versión desde el sitio web de Java, JAF (versión 1.1.1).
También puedes usar los enlaces de descarga proporcionados en este sitio:
Descarga y descomprime estos archivos, en el directorio superior recién creado, encontrarás algunos archivos jar de estas aplicaciones. Necesitas agregar mail.jar y activation.jar Agrega el archivo a tu CLASSPATH.
Si utilizas un servidor de correo tercero como el servidor SMTP de QQ, puedes ver un ejemplo completo de autenticación en la parte inferior del artículo.
A continuación se muestra un ejemplo de envío de un correo electrónico simple E-mail的实例。假设你的本地主机已经连接到网络。
// Nombre de archivo SendEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { // Correo electrónico del destinatario String to = "[email protected]"; // Correo electrónico del remitente String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Obtener las propiedades del sistema Properties properties = System.getProperties(); // Configurar el servidor de correo properties.setProperty("mail.smtp.host", host); // Obtener el objeto session por defecto Session session = Session.getDefaultInstance(properties); try{ // Crear el objeto MimeMessage por defecto MimeMessage message = new MimeMessage(session); // Establecer From: campo de encabezado message.setFrom(new InternetAddress(from)); // Establecer To: campo de encabezado message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Establecer Asunto: campo de encabezado message.setSubject("Este es el Línea de Asunto!"); // Establecer cuerpo de mensaje message.setText("Este es el mensaje real"); // Enviar mensaje Transport.send(message); System.out.println("Mensaje enviado con éxito..."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compila y ejecuta este programa para enviar un correo electrónico simple E-mail:
$ java SendEmail Mensaje enviado con éxito...
Si quieres enviar un correo electrónico,-Si deseas enviar un correo electrónico a varios destinatarios, utiliza el siguiente método para especificar varios IDs de destinatarios:
void addRecipients(Message.RecipientType type, Address[] addresses) lanza MessagingException
A continuación se describe los parámetros:
type:Deberá establecerse en TO, CC o BCC, donde CC representa CC (carbon copia) y BCC representa CC secreto. Ejemplo:Message.RecipientType.TO
addresses: 这是 email ID 的数组。在指定电子邮件 ID 时,你将需要使用 InternetAddress() 方法。
下面是一个发送 HTML E-mail 的实例。假设你的本地主机已经连接到网络。
和上一个实例很相似,除了我们要使用 setContent() 方法来通过第二个参数为 "text/html",来设置内容来指定要发送HTML 内容。
// 文件名 SendHTMLEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendHTMLEmail { public static void main(String [] args) { // Correo electrónico del destinatario String to = "[email protected]"; // Correo electrónico del remitente String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Obtener las propiedades del sistema Properties properties = System.getProperties(); // Configurar el servidor de correo properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象。 Session session = Session.getDefaultInstance(properties); try{ // 创建默认的 MimeMessage 对象。 MimeMessage message = new MimeMessage(session); // Establecer From: campo de encabezado message.setFrom(new InternetAddress(from)); // Establecer To: campo de encabezado message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: 头字段 message.setSubject("Este es el Línea de Asunto!"); // 发送 HTML 消息, 可以插入html标签 message.setContent("<h1>This is actual message</h1>", "text/html" ); // Enviar mensaje Transport.send(message); System.out.println("Mensaje enviado con éxito..."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
编译并运行此程序来发送HTML e-mail:
$ java SendHTMLEmail Mensaje enviado con éxito...
下面是一个发送带有附件的 E-mail的实例。假设你的本地主机已经连接到网络。
// 文件名 SendFileEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendFileEmail { public static void main(String [] args) { // Correo electrónico del destinatario String to = "[email protected]"; // Correo electrónico del remitente String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Obtener las propiedades del sistema Properties properties = System.getProperties(); // Configurar el servidor de correo properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象。 Session session = Session.getDefaultInstance(properties); try{ // 创建默认的 MimeMessage 对象。 MimeMessage message = new MimeMessage(session); // Establecer From: campo de encabezado message.setFrom(new InternetAddress(from)); // Establecer To: campo de encabezado message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: 头字段 message.setSubject("Este es el Línea de Asunto!"); // 创建消息部分 BodyPart messageBodyPart = new MimeBodyPart(); // Mensaje messageBodyPart.setText("Este es el cuerpo del mensaje"); // Crear mensaje múltiple Multipart multipart = new MimeMultipart(); // Configurar parte del mensaje de texto multipart.addBodyPart(messageBodyPart); // Parte de archivo adjunto messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Enviar mensaje completo message.setContent(multipart); // Enviar mensaje Transport.send(message); System.out.println("Mensaje enviado con éxito..."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compila y ejecuta tu programa para enviar un correo electrónico con adjunto.
$ java SendFileEmail Mensaje enviado con éxito...
Si necesitas proporcionar nombre de usuario y contraseña a e-Para lograr la autenticación del usuario a través del servidor de correo electrónico de mail, puedes completar la configuración de la siguiente manera:
props.put("mail.smtp.auth", "true"); props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
e-Otras formas de envío de correo electrónico de mail se mantienen consistentes con las anteriores.
Este ejemplo utiliza el servidor de correo QQ, necesitas habilitar POP en la configuración de la cuenta de correo QQ después de iniciar sesión en el backend de QQ3/Servicio SMTP, como se muestra en la siguiente imagen:
La cuenta de correo QQ configura la contraseña a través de la generación de un código de autorización:
Código Java como se muestra a continuación:
// Ejemplo de envío de correo electrónico con nombre de usuario y contraseña //Nombre de archivo SendEmail2.java //Este ejemplo utiliza la cuenta de correo QQ, necesitas configurar en el backend de qq 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; public class SendEmail2 { public static void main(String [] args) { // Correo electrónico del destinatario String to = "[email protected]"; // Correo electrónico del remitente String from = "[email protected]"; // Especificar el host principal para enviar correos electrónicos como smtp.qq.com String host = "smtp.qq.com"; //Servidor de correo QQ // Obtener las propiedades del sistema Properties properties = System.getProperties(); // Configurar el servidor de correo properties.setProperty("mail.smtp.host", host); properties.put("mail.smtp.auth", "true"); // Obtener el objeto session por defecto Session session = Session.getDefaultInstance(properties, new Authenticator(){ public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("[email protected]", "Código de autorización de QQ Mail"); //Nombre de usuario del remitente del correo electrónico y contraseña de autorización } }); try{ // Crear el objeto MimeMessage por defecto MimeMessage message = new MimeMessage(session); // Establecer From: campo de encabezado message.setFrom(new InternetAddress(from)); // Establecer To: campo de encabezado message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Establecer Asunto: campo de encabezado message.setSubject("Este es el Línea de Asunto!"); // Establecer cuerpo de mensaje message.setText("Este es el mensaje real"); // Enviar mensaje Transport.send(message); System.out.println("Mensaje enviado con éxito....de oldtoolbag.com)); }catch (MessagingException mex) { mex.printStackTrace(); } } }