Boa tarde, criei uma parte do sistema onde será enviado email para os fornecedores, assim todo formulário de pedido é preenchido e no final o usuário coloca seu email e senha e escolhe um tipo de email que esta no banco
servidor smpt_port_email smtp_host_mail smtps_starttls
Bol 587 smtps.bol.com.br true
Ibest 587 smtp.ibest.com.br true
IG 587 smtp.ig.com.br
Hotmail 25 smtp.live.com
Gmail 587 smtp.gmail.com
E classe que envia o email esta assim:
import java.io.UnsupportedEncodingException;
import java.util.Map;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class MailSender {
public void senderMail(final MailInformation mail) throws UnsupportedEncodingException, MessagingException {
Properties properties = new Properties();
properties.setProperty("mail.transport.protocol", "smtp");
properties.setProperty("mail.host", mail.getSmtpHostMail());
properties.setProperty("mail.smtp.auth", mail.getSmtpAuth());
properties.setProperty("mail.smtp.starttls.enable", mail.getSmtpStarttls());
properties.setProperty("mail.smtp.port", mail.getSmtpPortMail());
properties.setProperty("mail.mime.chartset", mail.getChartSetMail());
properties.setProperty("mail.smtp.ssl.trust", "*");
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mail.getUserMail(), mail.getPassMail());
}
};
Session session = Session.getDefaultInstance(properties, authenticator);
session.setDebug(false);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(mail.getUserMail(), mail.getFromNameMail()));
boolean first = true;
for (Map.Entry<String, String> map : mail.getToMailUsers().entrySet()) {
if (first) {
message.addRecipient(Message.RecipientType.TO, new InternetAddress(map.getKey(), map.getValue()));
first = false;
} else {
message.addRecipient(Message.RecipientType.CC, new InternetAddress(map.getKey(), map.getValue()));
}
}
message.setSubject(mail.getSubjectMail());
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setContent(mail.getBodyMail(), mail.getTypeTextMail());
Multipart multipart = new MimeMultipart();
for (int i = 0; i < mail.getFileMails().size(); i++) {
MimeBodyPart bodyPart = new MimeBodyPart();
FileDataSource dataSource = new FileDataSource(mail.getFileMails().get(i));
bodyPart.setDataHandler(new DataHandler(dataSource));
bodyPart.setFileName(dataSource.getName());
multipart.addBodyPart(bodyPart, i);
}
multipart.addBodyPart(mimeBodyPart);
message.setContent(multipart);
Transport.send(message);
}
}
Mas quando rodo local na minha maquina tudo certo, mas quando coloco em um host para rodar nao faz autenticação do email
recebo a seguinte exception:
javax.mail.AuthenticationFailedException: 535 Incorrect authentication data
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:823)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:756)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:673)
at javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at br.com.isoerp.email.MailSender.senderMail(MailSender.java:85)
Se alguém tiver idéia e puder me ajudar agradeço…
neste link http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.html tem todos as propiedades, mas não sei onde estou errando…
Até mais e obrigado

