【解決方法】C# を使用して ICS ファイルを添付ファイルとして送信する

プログラミングQA


こんにちは、みんな、

icsファイルを作成し、C#コード自体から電子メールを送信して、.icsファイルを添付ファイルとしてユーザーに送信しようとしています.ICSファイルをローカルドライブに保存して電子メールに添付して送信できます。

どのドライブにも保存せずに ics ファイルを送信したいと考えています。

C#ページ自体からicsファイルを送信する方法はありますか…

ありがとう

解決策 1

解決策は、Calender Invite を添付ファイル (.ics ファイル) としてエンド ユーザーに送信します。

コードの開始:
static void Main(文字列[] 引数)
{
Console.WriteLine(“ようこそ”);
var client = new SmtpClient(“smtp.gmail.com”, 587)
{
Credentials = new NetworkCredential(“myemail@gmail.com”, “パスワード”),
EnableSsl = 真、
タイムアウト = 100000
};
Console.WriteLine(“接続成功”);
// ここで、文字列ビルダーを使用して ICS ファイルを作成します
MailMessage msg = 新しい MailMessage();
msg.From = new MailAddress(“fromemail@gmail.com”, “差出人の名前”);
msg.To.Add(new MailAddress(“tomail@gmail.com”, “To Name”));
msg.Subject = “ICS ファイルを添付してメールを送信”;
msg.Body = “このスケジュールでミーティングに参加してください”;
StringBuilder str = new StringBuilder();
str.AppendLine(“BEGIN:VCALENDAR”);
str.AppendLine(“PRODID:-//会議のスケジュール”);
str.AppendLine(“VERSION:2.0”);
str.AppendLine(“METHOD:REQUEST”);
str.AppendLine(“BEGIN:VEVENT”);
str.AppendLine(string.Format(“DTSTART:{0:yyyyMMddTHHmmssZ}”, DateTime.Now.AddMinutes(+10)));
str.AppendLine(string.Format(“DTSTAMP:{0:yyyyMMddTHHmmssZ}”, DateTime.UtcNow));
str.AppendLine(string.Format(“DTEND:{0:yyyyMMddTHHmmssZ}”, DateTime.Now.AddMinutes(+60)));
str.AppendLine(“場所: CGI”);
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]。住所));

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 contype = new System.Net.Mime.ContentType(“text/calendar”);
contype.Parameters.Add(“メソッド”, “REQUEST”);
contype.Parameters.Add(“name”, “Meeting.ics”);
msg.Attachments.Add(new Attachment(str.ToString(), contype));

client.Send(メッセージ);
Console.WriteLine(“送信済み”);
Console.ReadLine();
}

解決策 2

この行の代わりに: msg.Attachments.Add(new Attachment(str.ToString(), contype));,
エラーが発生し続けたので、strの内容をファイルに書きました…

string strName = “Aname”;
DateTime dt = DateTime.Now.AddHours(1);
string strDate = dt.ToString(“yyyyMMddTHHmmss”);

文字列 strFileName = strName + strDate + “.ics”;

WriteToFile(sb.ToString());

//msg.Attachments.Add(new Attachment(sb.ToString(), ct));
msg.Attachments.Add(新しい添付ファイル(strFileName));

————
private static void WriteToFile(string strText)
{
using (StreamWriter sw = new StreamWriter(strFileName, true)) // true = 追加
{
sw.WriteLine(strText);
}
}

次に、新しく作成したファイルを添付しました。 これは私にとってはうまくいきました。

コメント

タイトルとURLをコピーしました