无法在jsseprovider,gmailsender中附加文件

问题描述 投票:0回答:1

我正在尝试这段代码。我可以使用以下代码发送邮件,但是当我插入附件代码时(您可以在//代码之间看到// 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());
}
java android
1个回答
0
投票

当你尝试发送消息时,我会说你的问题就在这里:

    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
© www.soinside.com 2019 - 2024. All rights reserved.