添付ファイルが2つあるJavamailを使用してメールを送信します。そのうちの1つはjsonファイルで、もう1つはtxtファイル(logcat.txt)です。 logcat.txtのサイズは約1MBです。 addAttachment(multipart,reportPath,"logcat.txt");
が自分のコードに含まれていると電子メールを送信しません。私がaddAttachment(multipart,reportPath,"logcat.txt");
を取り除くと、それは機能します。 jsonファイルのサイズが大きくなると、約500kbの1点でも送信されません。
マイコード:Javamailは添付ファイルが大きいメールを送信しません
public synchronized void sendReport(String subject, String body, String filepath, String filename, String reportPath, String sender, String recipients){
try {
Multipart multipart = new MimeMultipart("mixed"); //try adding "mixed" here as well but it doesn't work
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
//body
BodyPart messageBodyPart2 = new MimeBodyPart();
messageBodyPart2.setText(body);
Log.d(TAG, "sendReport: " + reportPath);
//this prints sendReport: /storage/emulated/0/Android/data/**app package name**/files/LOG-1472631395.json
Log.d(TAG, "sendReport: " + filepath);
//sendReport: /storage/emulated/0/Android/data/**app package name**/files/logcat.txt
addAttachment(multipart,filepath,filename);
addAttachment(multipart,reportPath,"logcat.txt");
multipart.addBodyPart(messageBodyPart2);
message.setContent(multipart);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
private static void addAttachment(Multipart multipart, String filepath, String filename) throws MessagingException
{
DataSource source = new FileDataSource(filepath);
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
}
私も添付ファイルを送信するために別の方法を使用しますが、それは動作しません。次のいずれか
private static void addAttachment(Multipart multipart, String filepath, String filename) throws Exception
{
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.attachFile(filepath);
mimeBodyPart.setFileName(filename);
multipart.addBodyPart(mimeBodyPart);
}
誰もがこの問題を解決する方法のアイデアを持っていますか?前もって感謝します。
ログにエラーが表示されますか? –
@ J.Chomel no、そうではありません。 –