Отправка электронного письма с приглашением в календарь с помощью SMPT-клиента

#c#

#c#

Вопрос:

Я искал и получил этот код, электронное письмо отправляется, но к письму нет вложения, какие-либо идеи, что не так / почему оно не привязывается

 public static void SendCalendarInvite(DateTime startTime, DateTime endTime)       
{

        var sc = new SmtpClient("smtp.sendgrid.net", 587);
        MailMessage msg = new MailMessage
        {
            From = new MailAddress("luke.taylor@domain.com", "Luke Taylor")
        };
        msg.To.Add(new MailAddress("luke.taylor@domain.com", "Luke Taylor"));

        msg.Subject = "Send Calendar Appointment Email";
        msg.Body = "Here is the Body Content";

        StringBuilder str = new StringBuilder();
        str.AppendLine("BEGIN:VCALENDAR");
        str.AppendLine("PRODID:-//Luke Taylor Test");
        str.AppendLine("VERSION:2.0");
        str.AppendLine("METHOD:REQUEST");
        str.AppendLine("BEGIN:VEVENT");
        str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", startTime));
        str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.Now));
        str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", endTime));
        str.AppendLine("LOCATION: Manchester");
        str.AppendLine(string.Format("UID:{0}", Guid.NewGuid()));
        str.AppendLine(string.Format("DESCRIPTION:{0}", msg.Body));
        str.AppendLine(string.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", msg.Body));
        str.AppendLine(string.Format("SUMMARY:{0}", msg.Subject));
        str.AppendLine(string.Format("ORGANIZER:MAILTO:{0}", msg.From.Address));

        str.AppendLine(string.Format("ATTENDEE;CN="{0}";RSVP=TRUE:mailto:{1}", msg.To[0].DisplayName, msg.To[0].Address));

        str.AppendLine("BEGIN:VALARM");
        str.AppendLine("TRIGGER:-PT15M");
        str.AppendLine("ACTION:DISPLAY");
        str.AppendLine("DESCRIPTION:Reminder");
        str.AppendLine("END:VALARM");
        str.AppendLine("END:VEVENT");
        str.AppendLine("END:VCALENDAR");
        var ct = new System.Net.Mime.ContentType("text/calendar");
        ct.Parameters.Add("method", "REQUEST");
        AlternateView avCal = AlternateView.CreateAlternateViewFromString(str.ToString(), ct);
        msg.AlternateViews.Add(avCal);

        sc.Credentials = Credentials;
        sc.Send(msg);
    }
 

я ожидаю электронное письмо с приглашением в календарь, в настоящее время просто получаю электронное письмо

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

1. Для меня ваш код работает хорошо, мой Outlook правильно отображает календарь

2. могу я спросить, что вы используете для своих учетных данных? это apikey или user / pass?

3. для моего теста я использовал внутренний почтовый сервер