2017-02-01 1 views
0
Message message = new MimeMessage(session); 
message.setFrom(new InternetAddress(fromEmail)); 
message.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail)); 
message.setFileName("abc.xls"); 
message.setText("Fill the content:"); 

Выше - основная часть кода, который я использую. Хотя я использую вышеуказанный код, я не вижу основной контент для тела «Заполните содержимое» в отправленной почте. Есть и другие сообщения и комментарии, в которых есть часть кода, который работает, и эта проблема будет разрешена с помощью MimeMultipart & MimeBodyPart. Но нет, где объясняется причина того, почему вышеуказанный код не работает.Содержимое тела не отправляется, пока я пытаюсь отправить электронное письмо с приложением с содержимым основного тела в Java-методах MimeMessage

Я также знаю, что использование setFileName недостаточно для добавления содержимого в файл, оно просто используется для добавления вложения без содержимого.

Примечание: Я использую javax.mail-1.5.0.jar

Можете ли вы объяснить причину выше код не работает?

Заранее спасибо.

+0

Вы только что установили имя файла или действительно хотите добавить туда какой-нибудь файл? – RealSkeptic

+0

Я просто сделал setFileName & этот файл присутствует в этом месте. –

ответ

1

Письмо, содержащее текстовое сообщение и одно или несколько вложений, должно быть сообщением MultiPart, потому что именно так создается почта, поэтому получающий почтовый клиент ее понимает.

В вашем простом примере вы не создаете письмо с файлом excel abc.xls в качестве вложения; вместо этого вы создаете текстовую почту и сообщаете клиенту, что тело этой почты должно быть названо abc.xls. Скорее всего, получающий почтовый клиент предложит текстовый файл с содержимым Fill the content:, ненадлежащим образом названным abc.xls, в качестве вложения в противном случае пустой почты; открытие предполагаемого файла Excel, вероятно, заставит Excel импортировать этот текстовый файл.

TL; DR: Используйте MimeMultiPart для создания писем с прикрепленными файлами.

+0

См. JavaMail [sendfile.java] (https://java.net/projects/javamail/sources/mercurial/content/demo/src/main/java/sendfile.java) [пример программы] (https: // java .net/проекты/JavaMail/страницы/Home # Образцы). –

+0

Спасибо @ammoQ. Это наблюдение было упущено. –

Смежные вопросы