public static int enviarCorreo(int puerto,String serverPrograma, String mailPrograma, String passMailPrograma, String info, String subject, String emailDestinatario, String ubicacionAdjunto1, String ubicacionAdjunto2, String nomAdjunto1, String nomAdjunto2) {
int err=0;
boolean conArchAdjunto1=true;
boolean conArchAdjunto2=true;
if(ubicacionAdjunto1.equals("")){
conArchAdjunto1=false;
}
if(ubicacionAdjunto2.equals("")){
conArchAdjunto2=false;
}
try {
// obtaining the session, this configuration is for
// a gmail account
Properties props = new Properties();
props.put("mail.smtp.host", serverPrograma);
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.port", puerto);//587
props.setProperty("mail.smtp.user", mailPrograma);
props.setProperty("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, null);
// session.setDebug(true);
// composing the text
BodyPart texto = new MimeBodyPart();
texto.setText(info);
// multipart for text and images
MimeMultipart multiParte = new MimeMultipart();
// composing the att
if (conArchAdjunto1) {
BodyPart adjunto1 = new MimeBodyPart();
adjunto1.setDataHandler(new DataHandler(new FileDataSource(ubicacionAdjunto1)));
adjunto1.setFileName(nomAdjunto1);
multiParte.addBodyPart(adjunto1);
}
if (conArchAdjunto2) {
BodyPart adjunto2 = new MimeBodyPart();
adjunto2.setDataHandler(new DataHandler(new FileDataSource(ubicacionAdjunto2)));
adjunto2.setFileName(nomAdjunto2);
multiParte.addBodyPart(adjunto2);
}
multiParte.addBodyPart(texto);
// composing mail, to, from, subject and
// content.
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(mailPrograma));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
emailDestinatario));
message.setSubject(subject);
message.setContent(multiParte);
message.addRecipient(Message.RecipientType.BCC,
new InternetAddress(mailPrograma));
message.setSubject(subject);
message.setContent(multiParte);
// Se envia el correo.
Transport t = session.getTransport("smtp");
t.connect(mailPrograma, passMailPrograma);
t.sendMessage(message, message.getAllRecipients());
t.close();
log.info("Clase EnviarMail, metodo enviarCorreo: Mail sended");
} catch (Exception e) {
err=-1;
log.error("Clase EnviarMail, metodo enviarCorreo: " +e.getMessage());
}
return err;
}
Я использую этот код и отлично работает, не забудьте импортировать javax.mail , и другой совет, что некоторые свойства, такие как mailPrograma (почта, которую вы хотите отправить по электронной почте), могут быть настроены в .properties с пропуском и некоторым избыточным кодом, который вы хотите изменить позже ...