Envio de E-mail com arquivos Anexados

2 respostas
K
Estou desenvolvendo um sistema que envia e-mails com arquivos anexados.


Temos vários clientes que recebem estes e-mails diariamente. Porém, um de nossos clientes, dos EUA, não está mais conseguindo receber. Se mandarmos o mesmo arquivo pelo Outlook Express, funciona. Mas pela java, não. Outra informação, se mandar um e-mail pelo java sem anexo, funciona.


Não importa o arquivo que seja, se mandar apenas um "txt", com meu nome escrito, em anexo, também não vai.





Abaixo a mensagem de erro que recebo:





"Esta mensagem usa um conjunto de caracteres que não é suportado pelo


Internet Mail Service. Para visualizar o conteúdo original da mensagem,abra


a mensagem anexada. Se o texto não for exibido corretamente, salve o anexo


no disco e abra-o utilizando um vizualizador que possa exibir o conjunto de


caracteres original."





Este é o código que estou utilizando para anexar o arquivo:





// Cria uma Sessão para o E-Mail


Session session = Session.getDefaultInstance(System.getProperties(), null);





// Cria a Mensagem


MimeMessage msg = new MimeMessage(session);


// De:


msg.setFrom(new InternetAddress(from));





// Para:


InternetAddress ainternetAddress[] = new InternetAddress[to.length];


for (int index = 0; index < to.length; index++) {


ainternetAddress[index] = new InternetAddress(to[index]);


}


msg.setRecipients(Message.RecipientType.TO, ainternetAddress);





// Assunto:


msg.setSubject(msgSubject);





// Cria a primeira Parte da Mensagem


mbp1 = new MimeBodyPart();





// Texto da Mensagem


if (messageType.equals(EmailUtils.MSG_TYPE_TEXT))


mbp1.setText(msgText);


if (messageType.equals(EmailUtils.MSG_TYPE_HTML)) {


mbp1.setDataHandler(new DataHandler(


new ByteArrayDataSource(msgText , "text/html")));


}


// Cria as Multiplas partes da Mensagem


Multipart mp = new MimeMultipart();


mp.addBodyPart(mbp1);





// Cria Segunda Parte da Mensagem (Apenas se Existirem Arquivos para Anexar)


if (files != null) {


// Adiciona o Arquivo ao E-Mail


FileDataSource fds = new FileDataSource(File);


if (!fds.getFile().exists()) {


throw new FileNotFoundException("Arquivo " + normalFile + " Não Encontrado! ");


}


MimeBodyPart mbp2 = new MimeBodyPart();


mbp2.setDataHandler(new DataHandler(fds));


// mbp2.setFileName(fds.getName());


mp.addBodyPart(mbp2);


}





// Adiciona as Multiplas Partes à Mensagem


msg.setContent(mp);





// Atribui a Data de Envio


msg.setSentDate(new Date());


// Envia a Mensagem


Transport.send(msg);


 :-?

2 Respostas

A

Este internet mail service é o Exchange da Micro$oft?

K

Muito obrigada mas o problema já foi resolvido. A máquina do cliente estava com problemas, com erros, ele então formatou e instalou da forma correta os aplicativos e então funcionou.



Muito obrigada por tudo!!



O cliente possui linux e utilizava o Qmail.



Obrigada!!!

Criado 28 de janeiro de 2003
Ultima resposta 11 de fev. de 2003
Respostas 2
Participantes 2