Envio de reportes por correo electronico (java,netbeans,mysql)
Buenas noches! Quisiera saber si alguno de ustedes ha trabajado con envio de reportes por correo electronico
utilizando java netbeans con datos que se encuentran almacenados en mysql, si tendran algo de informacion que me pudiera ayudar
a hacerlo, es algo completamente nuevo y quisiera saber como se logra hacer. Espero sus respuestas MUCHAS GRACIAS
- Inicie sesión o regístrese para enviar comentarios
JavaMail API
JavaMail (1) es la librería que se utiliza para el envío o lectura de un correo electrónico en Java.
Sin embargo, al basarse en una serie de RFCs, desde su primera versión, la API no fue diseñada intuitivamente.
Aún así, puede entenderse el código para el ejemplo de envío de correo electrónico más sencillo, que consiste sólo de texto plano:
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
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 SendMailTest {
public static void main(String[] args) {
try {
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("your_mail_address", "your_strong_password");
}
};
Session session = Session.getDefaultInstance(props, authenticator);
MimeMessage msg = new MimeMessage(session);
msg.setFrom("your_mail_address");
msg.setSubject("TestMail");
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("other_mail_address"));
msg.setText("This is a test mail ... :-)");
Transport.send(msg);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
Pero cuando se desea enviar el mensaje en HTML para visores que lo soporten y texto plano para los que no, con imágenes o archivos adjuntos, la cosa se comienza a complicar. Precisamente por eso se han diseñado librerías que ocultan esa complejidad y ofrecen una API bastante simple. Una de esas librerías es Simple Java Mail. (2) El ejemplo anterior:
email.setFromAddress("Your name", "your_mail_address");
email.setSubject("TestMail");
email.addRecipient("Other name", "other_mail_address", RecipientType.TO);
email.setText("This is a test mail ... :-)");
new Mailer("smtp.gmail.com", 587, "your_mail_address", "your_strong_password", TransportStrategy.SMTP_TLS).sendMail(email);
Otra librería con el mismo objetivo es Apache Commons Email. (3)
email.setHostName("smtp.gmail.com");
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator("your_mail_address", "your_strong_password"));
email.setSSLOnConnect(true);
email.setFrom("your_mail_address");
email.setSubject("TestMail");
email.setMsg("This is a test mail ... :-)");
email.addTo("other_mail_address");
email.send();
¡Por si sirve de algo!
Notas
~~~
Interesante
Gracias buen aporte, se ve muy interesante el libro JavaMail Le echare un ojo o_0
envio de reportes por correo
Muchas Gracias por el aporte, me dare a la tarea de ponerlo en practica, ojala pueda hacerlo funcionar hehe..
si no pues mis dudas aqui estarán.. GRACIAS!!