プロジェクトでJavaMail APIを使用してメールを送信しています.しかし、メールにファイルを添付するコードを書くと、メールの送信に時間がかかります.5回のうち4回は接続タイムアウトエラーが発生します.具体的なことがわかりません.その理由.ファイルデータは約400〜500 KBですコードは次のとおりです
public static void sendMailTo(String receiverEmailID, String emailSubject,String emailBody,ArrayList<String> attachmentFilepath) throws AddressException, MessagingException, IOException {
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtp");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.text", "text/plain");
properties.put("mail.smtp.debug", "true");
// Authentication For Sender.
if (session == null)
session = Session.getInstance(properties,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username","password"
);
}
});
// This block process to send mail on particular UserID
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(""));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(receiverEmailID));
message.setSubject(emailSubject);
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(emailBody, "text/html");
messageBodyPart.setDisposition(Part.INLINE);
Multipart multipart = new MimeMultipart("mixed");
multipart.addBodyPart(messageBodyPart);
int i=0;
while(i<attachmentFilepath.size()){
BodyPart attachment = new MimeBodyPart();
DataSource source = new FileDataSource(new File(attachmentFilepath.get(i)));
attachment.setDataHandler(new DataHandler(source));
attachment.setFileName(source.getName());
attachment.setDisposition(Part.ATTACHMENT);
multipart.addBodyPart(attachment);
i++;
}
message.setContent(multipart);
Transport.send(message);// This statement send Message.
}