JavaMail, de servidor interno para gmail ou yahoo

1 resposta
W

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

public class SendFile {

    public static void main(String[] args){
    	String to = "[email removido]";
    	String from = "[email removido]";
    	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();
    		}
    	}
    }
}

1 Resposta

heliofrota

Qual é o erro ?

Criado 13 de dezembro de 2012
Ultima resposta 13 de dez. de 2012
Respostas 1
Participantes 2