使用c#代码向多个电子邮件发送会议请求

本文关键字:会议 请求 电子邮件 代码 使用 | 更新日期: 2023-09-27 18:11:39

我用c#写了一个函数,它是发送一个会议请求到一个电子邮件地址。

我想修改这个功能,以便能够将会议请求发送给多个或多个收件人。

我应该把负责这个的代码设置在哪里,下面是实现这个

的代码
 string startTime1 = Convert.ToDateTime(startTime).ToString("yyyyMMddTHHmmssZ");
            string endTime1 = Convert.ToDateTime(endTime).ToString("yyyyMMddTHHmmssZ");
            MailMessage msg = new MailMessage(mailfrom, emailto);
            msg.Subject = Subject;
            msg.Body = emailbody;
            #region Calender Request
            StringBuilder str = new StringBuilder();
            str.AppendLine("BEGIN:VCALENDAR");
            //PRODID: identifier for the product that created the Calendar object
            str.AppendLine("PRODID:-//test //Outlook MIMEDIR//EN");
            str.AppendLine("VERSION:2.0");
            str.AppendLine("METHOD:REQUEST");
            str.AppendLine("BEGIN:VEVENT");
            str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", startTime1));//TimeZoneInfo.ConvertTimeToUtc("BeginTime").ToString("yyyyMMddTHHmmssZ")));
            str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow));
            str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", endTime1));//TimeZoneInfo.ConvertTimeToUtc("EndTime").ToString("yyyyMMddTHHmmssZ")));
            str.AppendLine(string.Format("LOCATION: {0}", "Location"));
            // UID should be unique.
            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("STATUS:CONFIRMED");
            str.AppendLine("BEGIN:VALARM");
            str.AppendLine("TRIGGER:-PT15M");
            str.AppendLine("ACTION:Accept");
            str.AppendLine("DESCRIPTION:Reminder");
            str.AppendLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY");
            str.AppendLine("END:VALARM");
            str.AppendLine("END:VEVENT");
            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("END:VCALENDAR");
            System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
            ct.Parameters.Add("method", "REQUEST");
            ct.Parameters.Add("name", "meeting.ics");
            AlternateView avCal = AlternateView.CreateAlternateViewFromString(str.ToString(), ct);
            msg.AlternateViews.Add(avCal);
            #endregion
            SmtpClient client = new SmtpClient("smtp.outlook.com", 587);
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential("lma@test.com", "test1234");
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.EnableSsl = true;
            client.Send(msg);

使用c#代码向多个电子邮件发送会议请求

您可以使用密件或抄送属性发送更多

MailAddress bcc = new MailAddress("manager1@contoso.com");
msg.Bcc.Add(bcc);

以上两行代码将只发送约会(.ics)项,但它不会将rsvp响应返回给组织者。它还会隐藏Response选项!!

所以你需要将与会者设置为如下代码:

str.AppendLine(string.Format("ATTENDEE;CN='"{0}'";RSVP=TRUE:mailto:{1}", msg.To[0].DisplayName, "manager1@contoso.com"));   //Attendee 1
str.AppendLine(string.Format("ATTENDEE;CN='"{0}'";RSVP=TRUE:mailto:{1}", msg.To[0].DisplayName, "manager2@contoso.com"));   // Attendee 2

使用密件转发或抄送属性

MailAddress bcc = new MailAddress("manager1@contoso.com");
msg.Bcc.Add(bcc);

您可以添加任意数量的收件人

Bcc

Cc