usar tabla por mail leer enviar correos correo con como archivo adjuntos adjunto java email gmail email-attachments

tabla - Envío de adjuntos de correo usando Java



enviar tabla por correo java (5)

Código de trabajo, he usado Java Mail 1.4.7 jar

import java.util.Properties; import javax.activation.*; import javax.mail.*; public class MailProjectClass { public static void main(String[] args) { final String username = "[email protected]"; final String password = "your.password"; 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"); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); message.setSubject("Testing Subject"); message.setText("PFA"); MimeBodyPart messageBodyPart = new MimeBodyPart(); Multipart multipart = new MimeMultipart(); messageBodyPart = new MimeBodyPart(); String file = "path of file to be attached"; String fileName = "attachmentName"; DataSource source = new FileDataSource(file); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(fileName); multipart.addBodyPart(messageBodyPart); message.setContent(multipart); System.out.println("Sending"); Transport.send(message); System.out.println("Done"); } catch (MessagingException e) { e.printStackTrace(); } } }

Estoy tratando de enviar correos electrónicos usando java y g mail. He almacenado mis archivos en la nube y los archivos almacenados que deseo enviar como archivo adjunto a mi correo.

Debería agregar esos archivos a este correo y no enlaces de esos archivos.

¿Cómo puedo enviar tales archivos adjuntos?


Con Spring Framework, puede agregar muchos archivos adjuntos:

package com.mkyong.common; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.MailParseException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; public class MailMail { private JavaMailSender mailSender; private SimpleMailMessage simpleMailMessage; public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) { this.simpleMailMessage = simpleMailMessage; } public void setMailSender(JavaMailSender mailSender) { this.mailSender = mailSender; } public void sendMail(String dear, String content) { MimeMessage message = mailSender.createMimeMessage(); try{ MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(simpleMailMessage.getFrom()); helper.setTo(simpleMailMessage.getTo()); helper.setSubject(simpleMailMessage.getSubject()); helper.setText(String.format( simpleMailMessage.getText(), dear, content)); FileSystemResource file = new FileSystemResource("/home/abdennour/Documents/cv.pdf"); helper.addAttachment(file.getFilename(), file); }catch (MessagingException e) { throw new MailParseException(e); } mailSender.send(message); } }

Para saber cómo configurar su proyecto para manejar este código, complete la lectura de este tutorial .


Esto funcionó para mí.

Aquí supongo que mi archivo adjunto es de un PDF tipo PDF .

Los comentarios se hacen para entenderlo claramente.

public class MailAttachmentTester { public static void main(String[] args) { // Recipient''s email ID needs to be mentioned. String to = "[email protected]"; // Sender''s email ID needs to be mentioned String from = "[email protected]"; final String username = "[email protected]";//change accordingly final String password = "test";//change accordingly // Assuming you are sending email through relay.jangosmtp.net Properties props = new Properties(); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "465"); // Get the Session object. Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // Create a default MimeMessage object. Message message = new MimeMessage(session); // Set From: header field of the header. message.setFrom(new InternetAddress(from)); // Set To: header field of the header. message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); // Set Subject: header field message.setSubject("Attachment"); // Create the message part BodyPart messageBodyPart = new MimeBodyPart(); // Now set the actual message messageBodyPart.setText("Please find the attachment below"); // Create a multipar message Multipart multipart = new MimeMultipart(); // Set text message part multipart.addBodyPart(messageBodyPart); // Part two is attachment messageBodyPart = new MimeBodyPart(); String filename = "D:/test.PDF"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Send the complete message parts message.setContent(multipart); // Send message Transport.send(message); System.out.println("Email Sent Successfully !!"); } catch (MessagingException e) { throw new RuntimeException(e); } } }


Por un motivo desconocido, la respuesta aceptada funciona parcialmente cuando envío un correo electrónico a mi dirección de Gmail. Tengo el adjunto, pero no el texto del correo electrónico.

Si desea tanto el archivo adjunto como el texto, intente esto en función de la respuesta aceptada:

Properties props = new java.util.Properties(); props.put("mail.smtp.host", "yourHost"); props.put("mail.smtp.port", "yourHostPort"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); // Session session = Session.getDefaultInstance(props, null); Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("user", "password"); } }); Message msg = new MimeMessage(session); try { msg.setFrom(new InternetAddress(mailFrom)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo)); msg.setSubject("your subject"); Multipart multipart = new MimeMultipart(); MimeBodyPart textBodyPart = new MimeBodyPart(); textBodyPart.setText("your text"); MimeBodyPart attachmentBodyPart= new MimeBodyPart(); DataSource source = new FileDataSource(attachementPath); // ex : "C://test.pdf" attachmentBodyPart.setDataHandler(new DataHandler(source)); attachmentBodyPart.setFileName(fileName); // ex : "test.pdf" multipart.addBodyPart(textBodyPart); // add the text part multipart.addBodyPart(attachmentBodyPart); // add the attachement part msg.setContent(multipart); Transport.send(msg); } catch (MessagingException e) { LOGGER.log(Level.SEVERE,"Error while sending email",e); }