¡Necesita urgentemente un programa de correo electrónico Java!
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();
}
}
}
}