Estou conseguindo enviar e-mail utilizando javamail, dentro de um servidor da empresa.
Neste servidor, temos o servidor de email MS Exchange, da Microsft.
meu problema começa quando preciso enviar email para outro e-mail externo como um gmail ou yahoo, por exemplo
Alguém saberia me explicar ? Já que recebo erro quando coloco apenas esse e-mail externona minha string to ?
Abaixo o código que envio email, corretamente, desde que tenha o domínio da empresa
[code]public class SendFile {
public static void main(String[] args){
String to = "a@empresa.com.br";
String from = "b@empresa.com.br";
String host = "server";
String filename = "C:\\TATOO.pds";
String msgText1 = "Enviando arquivo.\n";
String subject = "Enviando arquivo";
// cria algumas propriedades e obtem uma sessao padrao
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
Session session = Session.getInstance(props, null);
try {
// cria a mensagem
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
// cria a primeira parte da mensagem
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(msgText1);
// cria a segunda parte da mensage
MimeBodyPart mbp2 = new MimeBodyPart();
// anexa o arquivo na mensagem
FileDataSource fds = new FileDataSource(filename);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
// cria a Multipart
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
// adiciona a Multipart na mensagem
msg.setContent(mp);
// configura a data: cabecalho
msg.setSentDate(new Date());
// envia a mensagem
Transport.send(msg);
}
catch (MessagingException mex){
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
}
}
}[/code]