Note that there are some explanatory texts on larger screens.

plurals
  1. POSend meeting invitation mail over Google app engine
    primarykey
    data
    text
    <p>i want to send iCalendar meeting invitations. I am using Google App engine, Java. I managed to send a mail with an iCalendar file as an attachment, but programs like Outlook do not automatically recognize it as a meeting invitation.</p> <p>I figure, i have to set the content-type <strike>of the attachment</strike> to: "text/calendar; method=REQUEST", but it seems to me, GAE is not accepting this?</p> <p><strong>Update</strong>: I was wrong above. I actually found, that i have to send the mail with the iCalendar part <em>directly</em> in the content, not as an attachment! So my problem is, GAE seems not to accept setting the content-type of the message itself.</p> <p>Has anyone succesfully send a meeting invitation iCalendar element through mail using GAE?</p> <p><strong>Update:</strong></p> <p>I understand, i have to be more specific. In fact, i want to send iMip messages. iMip messages are not multipart, their content-type is "text/calendar". And in the case of sending a meeting invitation, it would be "text/calendar;method=REQUEST". So i tried this:</p> <pre><code>Message msg = new MimeMessage(session); msg.setContent(iCalendarAsString, "text/calendar;method=REQUEST"); </code></pre> <p>Then i send the message with Transport.send(..);</p> <p>In the logs in the development server of GAE i then see, that the content type is "text/plain". that's why i said, i think, GAE is not accepting setting a different content type.</p> <p>Or am i wrong?</p> <p><strong>Update 2</strong></p> <p>OK, here's the complete code:</p> <pre><code>Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); try { Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress("ical@someapp.appspotmail.com", "SomeApp")); msg.addRecipient(Message.RecipientType.TO, new InternetAddress("me@mydomain.de", "Sven Busse")); msg.setSubject("meeting invitation!"); msg.setContent(iCalendarAsString, "text/calendar;method=REQUEST"); Transport.send(msg); } catch (AddressException e) { log.warning(e.toString()); e.printStackTrace(); } catch (MessagingException e) { log.warning(e.toString()); e.printStackTrace(); } catch (UnsupportedEncodingException e) { log.warning(e.toString()); e.printStackTrace(); } </code></pre> <p>So, i set the content-type to "text/calendar;method=REQUEST". And once i send, this is the logs:</p> <pre><code>14.09.2011 09:52:59 com.google.appengine.api.mail.dev.LocalMailService log INFO: MailService.send INFO: From: SomeApp &lt;ical@someapp.appspotmail.com&gt; INFO: To: Sven Busse &lt;me@mydomain.de&gt; INFO: Reply-to: SomeApp &lt;ical@someapp.appspotmail.com&gt; INFO: Subject: meeting invitation! INFO: Body: INFO: Content-type: text/plain INFO: Data length: 458 </code></pre> <p>So, the logs don't look pretty, but you can see, the content-type has changed to "text/plain".</p> <p><strong>Update 3:</strong></p> <pre><code>Delivered-To: me@mydomain.de Received: by 10.68.59.7 with SMTP id v7cs112540pbq; Thu, 15 Sep 2011 07:45:55 -0700 (PDT) Received: by 10.52.95.44 with SMTP id dh12mr1121151vdb.20.1316097954738; Thu, 15 Sep 2011 07:45:54 -0700 (PDT) Return-Path: &lt;3oQ9yTgoJCgIdqqmngvqpciockn.eqouxgp.dwuugiqqingockn.eqo@2uix4h7xygsz66weerlq.apphosting.bounces.google.com&gt; Received: from mail-vw0-f69.google.com (mail-vw0-f69.google.com [209.85.212.69]) by mx.google.com with ESMTPS id o9si1579035vcv.136.2011.09.15.07.45.53 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 15 Sep 2011 07:45:53 -0700 (PDT) Received-SPF: pass (google.com: domain of 3oQ9yTgoJCgIdqqmngvqpciockn.eqouxgp.dwuugiqqingockn.eqo@2uix4h7xygsz66weerlq.apphosting.bounces.google.com designates 209.85.212.69 as permitted sender) client-ip=209.85.212.69; Authentication-Results: mx.google.com; spf=pass (google.com: domain of 3oQ9yTgoJCgIdqqmngvqpciockn.eqouxgp.dwuugiqqingockn.eqo@2uix4h7xygsz66weerlq.apphosting.bounces.google.com designates 209.85.212.69 as permitted sender) smtp.mail=3oQ9yTgoJCgIdqqmngvqpciockn.eqouxgp.dwuugiqqingockn.eqo@2uix4h7xygsz66weerlq.apphosting.bounces.google.com Received: by vws20 with SMTP id 20so3831617vws.4 for &lt;me@mydomain.de&gt;; Thu, 15 Sep 2011 07:45:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.236.187.1 with SMTP id x1mr5481998yhm.8.1316097953249; Thu, 15 Sep 2011 07:45:53 -0700 (PDT) Reply-To: SomeApp &lt;ical@someapp.appspotmail.com&gt; X-Google-Appengine-App-Id: someapp Message-ID: &lt;20cf305e2551fe38a104acfbee28@google.com&gt; Date: Thu, 15 Sep 2011 14:45:53 +0000 Subject: meeting invitation! From: SomeApp &lt;ical@someapp.appspotmail.com&gt; To: Sven Busse &lt;me@mydomain.de&gt; Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes BEGIN:VCALENDAR PRODID:-//Ben Fortuna//iCal4j 1.0//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT DTSTAMP:20110915T144552Z UID:20110915T144552Z-1@someapp.appspotmail.com SUMMARY:tolles projekt\, macht viel spass. DTSTART;VALUE=DATE:20110919 DTEND;VALUE=DATE:20110926 DESCRIPTION:tolles projekt\, macht viel spass. ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:me@mydomain.de ORGANIZER:mailto:ical@someapp.appspotmail.com END:VEVENT END:VCALENDAR </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload