Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Necesita urgentemente un programa de correo electrónico Java!

¡Necesita urgentemente un programa de correo electrónico Java!

Primero, fui a java.sun.com y descargué javamailapi 1.2, que ahora es la última versión 1.3. De hecho, esta API es una colección de bibliotecas de clases. Después de descomprimirlo, busque mail.jar y agréguelo a su classpath, junto con algunos otros archivos jar que el usuario promedio no necesitará. A continuación, descargue una extensión estándar del marco de activación de JavaBeans (tm)

JAF, abreviatura de Dongdong, y agregue activación.jar al classpath. Se utiliza principalmente dentro de la clase javax.activation. JAF es una extensión estándar del sol. 100% Java puro (a todos nos encanta el final~_~). Puedes consultar sus especificaciones (que aún no he terminado).

Aunque existen clases de remitente y receptor de correo en Java, es más conveniente utilizar Javamailapi. Casi me extravío. Me centraré en enviar correos electrónicos con archivos adjuntos. Si miras lo suficiente, hay un ejemplo de sendfile.java en la demostración de Javamailapi, pero si has visto ese ejemplo, no tienes que mirar este, porque este es mucho más simple que aquel y no No requiere ningún parámetro.

importar java.io.*;

importar java.util.*;

importar javax.mail.*;

importar javax.mail.internet.*;

import javax.activation.*;

//Advertencia: el siguiente contenido debe configurarse dentro, y todos son cosas encapsuladas, hay Hay demasiadas razones que también mencioné en el control principal por las que quiero agregarlas.

clase pública SendAttachment

{

public static void main(String[] args)

{

intentar

{

// Crear atributos. Contiene la dirección del servidor desde el que se envía el correo electrónico.

Propiedades mailProps = new Propiedades();

mailProps.put("mail.smtp.host", "192.0.0.1"); // "mail.smtp.host" Puede ser cualquier dirección que desees, pero debe ser real y estar disponible.

// Crea una sesión

Session mailSession = Session.getDefaultInstance(mailProps);

// Crea un mensaje para el correo. El objeto de correo contiene todos los componentes del correo, que están encapsulados en el método de configuración

MimeMessage message = new MimeMessage(mailSession);

// Establece el remitente

message.setFrom(new InternetAddress(

" chqn@cmmail.com"));

// Destinatario

message.setRecipient(Message. Mail .MailProps);

// Crea el objeto de correo del correo.

setRecipient(Message.RecipientType.TO,

new InternetAddress("chqn@cmmail.com"));

// Título del mensaje

message.setSubject ("Te amo"); //jaja, intimidando a la gente

// Crea un Mimemultipart, que debe contener múltiples archivos adjuntos. Si solo hay un contenido y no hay archivos adjuntos, puede usar directamente message.setText(String str)

// para ir al contenido de la carta, lo cual es más conveniente. Los archivos adjuntos equivalen a crear múltiples piezas de contenido; consulte a continuación para obtener más información.

MimeMultipart multi = new MimeMultipart();

// Crea BodyPart, su función principal es agregar los n contenidos creados posteriormente a MimeMultipart. Tengo 2 BodyParts aquí.

BodyPart textBodyPart = new MimeBodyPart(); // El primer BodyPart escribe principalmente el contenido de letras ordinarias.

textBodyPart.setText("Ver archivo adjunto para más detalles");

// Inserta el primer BodyPart en el objeto MimeMultipart.

multi.addBodyPart(textBodyPart);

// Crea una segunda BodyPart, concretamente FileDAtaSource

FileDataSource fds = new FileDataSource("c:\\ myattachment . txt"); // El documento debe existir; de lo contrario, se generará una excepción.

BodyPart fileBodyPart = new MimeBodyPart(); //segundo BodyPart

fileBodyPart.setDataHandler(new DataHandler(fds)); //caracteres en forma de secuencia cargados en el documento

fileBodyPart.setFileName("report.xls"); //Establece el nombre del archivo, que no necesita ser el nombre del archivo original.

/*

* Aquí hay otra forma en la que escribí el archivo adjunto, pero no funciona, el archivo adjunto siempre tiene 0K bytes. Pida a los expertos que le indiquen soluciones. Los métodos anteriores a los que me refiero son demostraciones.

*

* FileInputStream in = new FileInputSteam("c:\myattachment.txt");

* BodyPart fileBodyPart = new MimeBodyPart(in);

* fileBodyPart.

* fileBodyPart.setFileName("report.xls"); // La abuela me ha estado dando vueltas durante dos días, pero no puedo hacerlo bien.

**

*/

// No más palabras, igual que la primera BodyPart.

multi.addBodyPart(fileBodyPart);

// MimeMultPart se agrega al mensaje como contenido

message.setContent(multi);

// Todo lo anterior debe guardarse.

message.saveChanges();

// Usa la clase Transporte para enviar, que es el protocolo de envío de correo SMTP,

Transport.send(message)

}

captura (Excepción exc)

{

exc.printStackTrace();

}

}

}

}