Я хочу прикрепить несколько файлов в приглашении календаря Outlook, используя Java

#java #email #calendar #attachment

#java #Адрес электронной почты #Календарь #вложение

Вопрос:

Я хочу прикрепить несколько файлов внутри приглашения календаря, используя Java. В настоящее время я могу создать приглашение с основным текстом html, но я не могу добавить вложения к этому приглашению.

Кто-нибудь знает, как прикреплять файлы.

Я не отправляю приглашение как вложение. Все происходит обычным способом принятия / отклонения.

Пожалуйста, отправьте сообщение как можно скорее. Заранее спасибо

КОД СЛЕДУЮЩИМ ОБРАЗОМ :

     MimetypesFileTypeMap mimetypes = (MimetypesFileTypeMap) MimetypesFileTypeMap.getDefaultFileTypeMap();
    mimetypes.addMimeTypes("text/calendar ics ICS");

    MailcapCommandMap mailcap = (MailcapCommandMap) MailcapCommandMap.getDefaultCommandMap();
    mailcap.addMailcap("text/calendar;; x-java-content-handler=com.sun.mail.handlers.text_plain");


    Properties props = new Properties();
    props.setProperty("mail.transport.protocol", "  ");
    props.setProperty("mail.host", mailServer);
    //props.setProperty("mail.user", "emailuser");
    //props.setProperty("mail.password", "");

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


    MimeMessage message = new MimeMessage(mailSession);
    //message.addHeaderLine("text/calendar;method=REQUEST;charset=UTF-8");

  /*  String emailAddress = invite_email;
    String fullName = invite_name;*/

    String emailAddress = "XYZ@aBC.com";
    String fullName = "ABCD";
    message.setFrom(new InternetAddress(replyEmail, replyEmailName));
    javax.mail.Address address = new InternetAddress(emailAddress, fullName);

    message.addRecipient(MimeMessage.RecipientType.TO, address);
    message.setSubject("abc"   invite_sub);

    // Create a Multipart
    Multipart multipart = new MimeMultipart("alternative");

    //part 1, html text
    BodyPart messageBodyPart = buildHtmlTextPart(team_id);
    multipart.addBodyPart(messageBodyPart);


    // Add part two, the calendar
    BodyPart calendarPart = buildCalendarPartNew(emailAddress , fullName , invite_sub , invite_uuid ,start_date , finish_date , invite_seq , invite_status , invite_timezone );
    multipart.addBodyPart(calendarPart);

    // Add attachments to the body


    multipart =  addAttachment(multipart,Req_List);


    //update the requisition id list back to " " once the attachment process is over
    Req_List = " ";

    // Put parts in message
    System.out.println("setting the content of message");
    message.setContent(multipart);



    // send message
    try {
        Transport transport = mailSession.getTransport();
        transport.connect();
        transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
        transport.close();
    }
    catch (Exception ex) {
        System.out.println(ex.toString());
        throw ex;
    }
  

ФУНКЦИЯ ДЛЯ ВЛОЖЕНИЯ В ОСНОВНОМ СОДЕРЖИТ :

 FileDataSource fds1 = new FileDataSource(sharepath_name);
        attachment.setDataHandler(new DataHandler(fds1));
attachment.setFileName(fds1.getName());
        attachment.setHeader("MIME-Version", "1.0");
        attachment.setHeader("Content-Type", " " mime_type  "; name=""   sharepath_name   """);
        attachment.setHeader("Content-Disposition", "attachment;          filename=""   sharepath_name   """);
        attachment.setHeader("Content-Transfer-Encoding", "base64");
        multipart.addBodyPart(attachment);
return multipart;
  

ошибки как таковой нет, приглашение генерируется с текстом, но основная проблема в том, что я хочу вложения внутри приглашения, я не могу прикрепить файлы внутри приглашения, я не знаю, как прикрепить файлы внутри приглашения?
Кроме вложений, мне нужно предоставить несколько вложений внутри приглашения.

Заранее спасибо

Комментарии:

1. Это поможет, если вы опубликуете некоторый код, а также объясните, почему вы «не можете» добавлять вложения — сообщение об ошибке, код не работает и т.д.

2. @Stuart я прикрепил код и основную проблему, код выполняется нормально, я получаю приглашение, но проблема в том, что я не получаю вложения файлов. В приглашении нет вложений.

Ответ №1:

Вы пробовали без настройки заголовков вложений вручную? Они должны быть установлены MimeMessage.

Комментарии:

1. да, я пытался без установки заголовков и только с настройкой имени файла и обработчика данных, но все тот же сценарий, приглашение генерируется, но без какого-либо вложения.

2. есть какие-нибудь подсказки, как это решить?? мне нужно, чтобы это сработало срочно.. Любая помощь по этому поводу будет оценена..

3. @Vishal Я бы предложил взять сообщение, которое, как известно, работает, и воссоздать его из вашего кода.

4. спасибо, я создал новое приглашение календаря и попытался прикрепить документ, это сработало, но проблема сейчас в том, что при прикреплении документа он не прикрепляет текстовую часть html. Когда я скрываю код вложения, он принимает html-часть в приглашении. Таким образом, HTML-текст и вложение не приходят вместе по почте..

5. @staurt я обнаружил проблему, и теперь она сработала, проблема заключалась в том, что я прикрепляю файлы за пределами buildHtmlTextPart.. Но вложения должны быть внутри этой функции, также нам нужно установить содержимое основной части с помощью multipart, который содержит все основные части. итак, наконец-то я могу видеть вложения и HTML-содержимое вместе в почте .. спасибо за ваш ответ, Стюарт. 🙂