Отправить приглашение календаря по электронной почте с помощью JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Отправить приглашение календаря по электронной почте с помощью Java

Сообщение Anonymous »

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

Я создаю событие/приглашение с помощью 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
}

}
Но когда я получаю электронное письмо (в Gmail), я не вижу приглашения, мероприятие автоматически добавляется в мой календарь. Я могу принять или отклонить приглашение, только нажав на событие в календаре.

Я попытался просто отправить приглашение, но затем получил электронное письмо с вложением ics.

Что я упускаю?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»