亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Java 中的 Gmail API 創建帶有 PDF 文件作為附件的草稿

使用 Java 中的 Gmail API 創建帶有 PDF 文件作為附件的草稿

烙印99 2023-04-26 13:51:09
我正在嘗試使用 Gmail API 在 Java 中創建帶有附件的草稿。創建一個基本的草稿是有效的,所以我已經消除了任何權限問題。我在這里使用代碼作為靈感,但無法讓它發揮作用。這是我到目前為止所做的:public String generateGmailDraft(EmailRequestDto emailRequestDto, String quoteId)         throws MessagingException, IOException, GeneralSecurityException {    // The attachment is a PDF file    AttachmentDto lastQuoteData = getLastQuotePdfData(quoteId);    MimeMessage email = createMimeMessage(emailRequestDto, lastQuoteData);    Message messageWithEmail = createMessageWithEmail(email);    Draft draft = new Draft();    draft.setMessage(messageWithEmail);    // this works    Gmail gmail = gmail(googleGmailCredentialProperties);    log.debug("attempting to send mail");    draft = gmail.users().drafts().create(emailRequestDto.getFrom(), draft).execute();    log.debug("Draft id: {}", draft.getMessage().getId());    log.debug(draft.toPrettyString());    return draft.getMessage().getId();}從 Google 示例中,我創建了一個 MIME 消息,但這可能是問題所在:/** * Create a MimeMessage using the parameters provided * @return the MimeMessage to be used to send email * @throws MessagingException */private MimeMessage createMimeMessage(EmailRequestDto requestDto, AttachmentDto attachment)        throws MessagingException, IOException {    Properties props = new Properties();    Session session = Session.getDefaultInstance(props, null);    MimeMessage email = new MimeMessage(session);    email.setFrom(new InternetAddress(requestDto.getFrom()));    email.addRecipient(javax.mail.Message.RecipientType.TO, ew InternetAddress(requestDto.getTo()));    email.setSubject(requestDto.getSubject());    BodyPart messageBodyPart = new MimeBodyPart();    messageBodyPart.setHeader("Content-Type", "multipart/alternative");}

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

嘗試與此類似的操作:


private MimeMessage createEmailWithAttachment(String to,

        String subject,

        String bodyText,

        File file) throws MessagingException, IOException {

    Properties props = new Properties();

    Session session = Session.getDefaultInstance(props, null);


    MimeMessage email = new MimeMessage(session);


    email.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));

    email.setSubject(subject);


    MimeBodyPart mimeBodyPart = new MimeBodyPart();

    mimeBodyPart.setContent(bodyText, "text/plain");


    Multipart multipart = new MimeMultipart();

    multipart.addBodyPart(mimeBodyPart);


    mimeBodyPart = new MimeBodyPart();

    DataSource source = new FileDataSource(file);


    mimeBodyPart.setDataHandler(new DataHandler(source));

    mimeBodyPart.setFileName(file.getName());


    multipart.addBodyPart(mimeBodyPart);

    email.setContent(multipart);


    return email;

}


查看完整回答
反對 回復 2023-04-26
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號