2016-10-05 7 views
0

を使用して複数の電子メールに会議出席依頼を送信しました。電子メールアドレスに会議出席依頼を送信している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("[email protected]", "test1234"); 
      client.DeliveryMethod = SmtpDeliveryMethod.Network; 
      client.EnableSsl = true; 

      client.Send(msg); 

答えて

0

使用BCCを実装するコードまたはCCのあなたはできるだけ多くの受信者を追加することができます

MailAddress bcc = new MailAddress("[email protected]"); 
msg.Bcc.Add(bcc); 

プロパティですあなたがしたい

Bcc

Cc

+0

いいえ、それは不可能です。 「to」プロパティは1つだけ持つことができます。 https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 – Lokki

+0

Bccを使用する場合は、すべての受信者に自分のメールアドレス – Lokki

+0

,,,,ありがとうございました。 iiはmsg.To.Add(to)を使用しようとしました。 2つ以上のアドレスのために成功しました。あなたの答えは私のために道を啓発:) – Laila

0

あなたは上記のコードの2行がちょうど任命(.ICS)のアイテムを送信しますが、それはバックにRSVPの応答を与えることはありませんBCCまたはCCプロパティ

MailAddress bcc = new MailAddress("[email protected]"); 
msg.Bcc.Add(bcc); 

でより多くのを送ることができます主催者。また、それはResponseオプションを隠すでしょう!

だから、コードの下のように設定し、出席者を持っている必要があります:

str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE:mailto:{1}", msg.To[0].DisplayName, "[email protected]")); //Attendee 1 
str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE:mailto:{1}", msg.To[0].DisplayName, "[email protected]")); // Attendee 2