2 개의 첨부 파일이있는 Javamail을 사용하여 전자 메일을 보내려고합니다. 그 중 하나는 json 파일이고 다른 하나는 txt 파일 (logcat.txt)입니다. logcat.txt의 크기는 약 1MB입니다. 내 코드에 addAttachment(multipart,reportPath,"logcat.txt");
이 있으면 이메일을 보내지 않습니다. addAttachment(multipart,reportPath,"logcat.txt");
을 제거하면 제대로 작동합니다. json 파일의 크기가 커지면 한 지점에서 약 500kb까지 전송되지 않습니다.
내 코드 :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 아니오, 그렇지 않습니다. –