Отправка приглашения на собрание более чем на одно письмо с помощью кода c#

я написал функцию, используя 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);

2 ответа

  1. Использовать свойство BCC или CC

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

    Вы можете добавить столько получателей, сколько хотите

    БЦК

    УК

  2. Вы можете отправить еще много с свойством BCC или CC

    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