Ich frage mich, wie ich eine Besprechungsanfrage senden kann, damit GMail sie richtig erkennt?Warum erkennt Google Mail Besprechungsanfrage, die von Code gesendet wird, nicht?
Wenn Sie versuchen, unten als alternative Ansicht mit gewöhnlichem Code (auch unten angegeben) über MailMessage
Objekt GMail gegeben iCalendar Besprechungsanfrag Definition senden es wird nicht erkannt Besprechungsanfrag geführt werden:
Aber die Mail mit genau die gleiche Besprechungsanfrage über GMail UI Ergebnisse in erkannten Besprechungsanfrage gesendet! Rätselhaft.
Weiß jemand, was "Magie" Ich vermisse?
Gut zu bemerken, dass Outlook genau die gleiche Besprechungsanfrage korrekt erkennt, die von gegebenem Code gesendet wird.
Der Code Mail mit Besprechungsanfrage senden:
class Program
{
static string From = "[email protected]";
static string TimeFormat = "yyyyMMdd\\THHmmss\\Z";
static string To = "[email protected]";
static void Main(string[] args)
{
string content = ReadFile("event-template.ics");
content = content.Replace("#TO#", To);
content = content.Replace("#FROM#", From);
content = content.Replace("#UID#", Guid.NewGuid().ToString().Replace("-", ""));
content = content.Replace("#CREATED-AT#", DateTime.UtcNow.AddDays(-1).ToString(TimeFormat));
content = content.Replace("#DTSTART#", DateTime.UtcNow.AddDays(1).ToString(TimeFormat));
content = content.Replace("#DTEND#", DateTime.UtcNow.AddDays(1).AddHours(1).ToString(TimeFormat));
MailMessage message = new MailMessage();
message.From = new MailAddress(From);
message.To.Add(new MailAddress(To));
message.Subject = "Meeting Request from Code!";
var iCalendarContentType = new ContentType("text/calendar; method=REQUEST");
var calendarView = AlternateView.CreateAlternateViewFromString(content, iCalendarContentType);
calendarView.TransferEncoding = TransferEncoding.SevenBit;
message.AlternateViews.Add(calendarView);
using (var smtp = new SmtpClient())
{
smtp.Send(message);
}
}
public static string ReadFile(string fileName)
{
using (StreamReader r = new StreamReader(fileName))
{
return r.ReadToEnd();
}
}
}
iCalendar Template-Definition:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//A//B//EN
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
ORGANIZER;CN="Organizer":mailto:#FROM#
ATTENDEE;CN="Attendee";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=
NEEDS-ACTION;RSVP=TRUE:mailto:#TO#
DTSTART:#DTSTART#
DTEND:#DTEND#
LOCATION:Location test
TRANSP:OPAQUE
SEQUENCE:0
UID:#UID#
DTSTAMP:#CREATED-AT#
CREATED:#CREATED-AT#
LAST-MODIFIED:#CREATED-AT#
DESCRIPTION:Test description\n
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR
UPD. Die Quelle der E-Mail, die von Code generiert und von Google Mail empfangen wurde (nicht von Google Mail als Besprechungsanfrage erkannt): http://pastebin.com/MCU6P16Y.
Die Quelle der E-Mail von GMail während Spedition (anerkannt Correclty) zusammen: http://pastebin.com/zfbbj9Gg
WICHTIG UPDATE.Nur Ziel von meiner E-Mail (<my>@gmail.com
) zu meiner Kollegin (<colleague>@gmail.com
) ändern und es fängt an, richtig zu erkennen! Jetzt sieht es definitiv wie GMail aus. (Ich sende E-Mail von der Adresse, die sich vom Ziel unterscheidet, sicher)
UPDATE. Gefunden genau das gleiche Problem in GMail-Support-Forum: Bug: Gmail fails to recognize .ics calendar invitations attached to incoming messages. Die Ausgabe vom Juni 2011 und berichtet, wie im Juli 2011 behoben. Ich habe dort ein neues Thema erstellt: GMail fails to recognize *.ics attachment as a meeting request.
Könnten Sie die Quelle der aktuellen E-Mail teilen gesendet? Einschließlich aller Header und Anhänge. – Evert
@Evert, finden Sie die vollständige Quelle der E-Mail hier: http://pastebin.com/MCU6P16Y –
@Evert, ich habe auch die Quelle der weitergeleiteten E-Mail hinzugefügt. –