我需要在C#中使用文件附件发送Outlook 2013的metting请求。 我已经使用代码发送请求,但我真的不知道如何添加附件。
MailMessage message = new MailMessage();
message.To.Add("someMail");
message.Subject = "Test";
message.From = new MailAddress("myMail");
message.Body = "Test Test";
SmtpClient smtp = new SmtpClient("mySmtp");
StringBuilder str = new StringBuilder();
str.AppendLine("BEGIN:VCALENDAR");
str.AppendLine("VERSION:2.0");
str.AppendLine("METHOD:REQUEST");
str.AppendLine("BEGIN:VEVENT");
str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmZ}", DateTime.UtcNow));
str.AppendLine(string.Format("DTSTART:{0}", startTime));
str.AppendLine(string.Format("DTEND:{0}", endTime));
str.AppendLine("LOCATION: Zürich");
str.AppendLine(string.Format("UID:{0}", Guid.NewGuid()));
str.AppendLine(string.Format("DESCRIPTION:{0}", message.Body));
str.AppendLine(string.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", message.Body));
str.AppendLine(string.Format("SUMMARY:{0}", message.Subject));
str.AppendLine(string.Format("ORGANIZER:MAILTO:{0}", message.From.Address));
str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE:mailto:{1}", message.To[0].DisplayName, message.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");
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
ct.Parameters.Add("method", "REQUEST");
AlternateView avCal = AlternateView.CreateAlternateViewFromString(str.ToString(), ct);
message.AlternateViews.Add(avCal);
smtp.Send(message);
我希望有人可以提供帮助 谢谢Ego
答案 0 :(得分:0)
您可以尝试以下代码
MailMessage msg = new MailMessage();
byte[] byteArray = Encoding.UTF8.GetBytes(str.ToString());
Stream contentStream = new MemoryStream(byteArray);
Attachment attachment = new Attachment(contentStream, "calendar.ics", "text/calendar");
attachment.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
msg.Attachments.Add(attachment);