我正在尝试这段代码。我可以使用以下代码发送邮件,但是当我插入附件代码时(您可以在//代码之间看到// CODE TILL HERE)它显示错误
在发送:javax.mail.SendFailedException:没有收件人地址
MimeMessage message = new MimeMessage(session);
try {
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
//CODE FROM HERE
Multipart emailContent = new MimeMultipart();
//Text body part
MimeBodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText("My multipart text");
//Attachment body part.
MimeBodyPart pdfAttachment = new MimeBodyPart();
clienttargetPdf = Environment.getExternalStorageDirectory().getAbsolutePath() + "/mm.pdf";
pdfAttachment.attachFile(clienttargetPdf);
//Attach body parts
emailContent.addBodyPart(textBodyPart);
emailContent.addBodyPart(pdfAttachment);
//Attach multipart to message
message.setContent(emailContent);
Transport.send(message);
//CODE TILL HERE.
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) {
Log.d("mylog", "Error in sending: " + e.toString());
}
当你尝试发送消息时,我会说你的问题就在这里:
Transport.send(message);
//CODE TILL HERE.
但在设置收件人之后,实际应该在几行后发送:
//CODE TILL HERE.
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message); // <---- here's the second sending