java - जावा के साथ प्रति ईमेल कैलेंडर आमंत्रित करें



email calendar (1)

मैं जावा के साथ प्रति ईमेल कैलेंडर आमंत्रण भेजने का प्रयास कर रहा हूं। प्राप्तकर्ता को ईमेल प्राप्त होता है लेकिन स्वीकार करने या अस्वीकार करने के लिए एक निमंत्रण दिखाए जाने के बजाय, ईवेंट स्वतः अपने कैलेंडर में जोड़ा जाता है

मैं इवेंट का निर्माण कर रहा हूं / ical4j.jar के साथ आमंत्रित हूं

private Calendar getInvite(Session session) {
    Calendar calendar = new Calendar();
    calendar.getProperties().add(Version.VERSION_2_0);
    calendar.getProperties().add(Method.REQUEST);

    VEvent event = new VEvent(
        new DateTime(sesion.getStartDate()), 
        new DateTime(sesion.getEndDate()), 
        session.getName());

    event.getProperties().add(Priority.MEDIUM);
    event.getProperties().add(Clazz.PUBLIC);

    try {
        UidGenerator ug = new UidGenerator("uidGen");
        Uid uid = ug.generateUid();
        event.getProperties().add(uid);
    } catch (SocketException e) {
        // Log things
    }

    for (Participant participant : session.getParticipants()) {
        Attendee attendee = new Attendee(URI.create("mailto:" + participant.getEmail()));
        attendee.getParameters().add(Role.OPT_PARTICIPANT);
        attendee.getParameters().add(new Cn(participant.getName()));
        attendee.getParameters().add(PartStat.NEEDS_ACTION);
        event.getProperties().add(attendee);
    }

    calendar.getComponents().add(event);

    return calendar;

}

और इस तरह मैं ईमेल भेजता हूं:

public void sendEmail(String fromMail, String toMail, String subject, String text, net.fortuna.ical4j.model.Calendar calendar) {
    try {
        Session session = Session.getInstance(getMailProperties(), new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(getUser(), getPassword());
            }
        });

        MimeMessage mimeMessage = new MimeMessage(session);
        mimeMessage.setHeader("Content-Transfer-Encoding:", "7bit");

        Address address = new InternetAddress(fromMail);
        mimeMessage.setFrom(address);

        mimeMessage.setSentDate(Calendar.getInstance().getTime());
        mimeMessage.setRecipients(Message.RecipientType.TO, toMail);

        mimeMessage.setSubject(subject);
        Calendar cal = Calendar.getInstance();
        mimeMessage.setSentDate(cal.getTime());

        Multipart multipart = new MimeMultipart("alternative");

        // First part - HTML readable text  
        MimeBodyPart msgHtml = new MimeBodyPart();
        msgHtml.setContent(text, "text/html; charset=UTF-8");

        multipart.addBodyPart(msgHtml);

        if (calendar != null) {
            // Another part for the calendar invite
            MimeBodyPart invite = new MimeBodyPart();
            invite.setHeader("Content-Class", "urn:content-  classes:calendarmessage");
            invite.setHeader("Content-ID", "calendar_message");
            invite.setHeader("Content-Disposition", "inline");
            invite.setContent(calendar.toString(), "text/calendar");
            multipart.addBodyPart(invite);
        }

        mimeMessage.setContent(multipart);

        Transport.send(mimeMessage);

    } catch (Exception e) {
        // Log things
    }

}

लेकिन जब मुझे ईमेल प्राप्त होता है (जीमेल में), मुझे कोई आमंत्रण नहीं दिखाई देता है, तो ईवेंट स्वतः ही मेरे कैलेंडर में जोड़ दिया जाता है मैं कैलेंडर में ईवेंट पर क्लिक करके केवल स्वीकार या अस्वीकार कर सकता हूं

मैंने अभी आमंत्रित करने की कोशिश की है, फिर क्या होता है कि मुझे एक इक्स संलग्नक के साथ एक ईमेल मिलता है

मैं क्या खो रहा हूँ?


आप एक नया कैलेंडर बना रहे हैं, यही कारण है कि कैलेंडर स्वतः जोड़ दिया जाता है। दस्तावेज़ीकरण देखें https://github.com/ical4j/ical4j/wiki/Examples#Creating_a_new_calendar "चार घंटे की अवधि की बैठक का निर्माण" करने का प्रयास करें और देखें कि क्या आपको कोई समस्या है।





ical4j