/// <summary> /// メールの編集 /// </summary> /// <param name="mail">メール</param> /// <param name="item">リストアイテム</param> private void EditMail(Mail mail, ListViewItem item) { Icon appIcon; // 1番目のカラムの表示が差出人か差出人または宛先のとき if (listView1.Columns[0].Text == "差出人" || listView1.Columns[0].Text == "差出人または宛先") { mail.notReadYet = false; ReforcusListView(listView1); // データ変更フラグをtrueにする dataDirtyFlag = true; } else if (listView1.Columns[0].Text == "宛先") { // 1番目のカラムが宛先のときは編集画面を表示する MailEditorForm EditMailForm = new MailEditorForm(); // 親フォームをForm1に設定する EditMailForm.MainForm = this; // 親フォームにタイトルを設定する EditMailForm.Text = mail.subject + " - Akane Mail"; // 送信箱の配列をForm3に渡す EditMailForm.SendList = collectionMail[SEND]; EditMailForm.ListTag = (int)item.Tag; EditMailForm.IsEdit = true; // 宛先、件名、本文をForm3に渡す EditMailForm.textAddress.Text = mail.address; EditMailForm.textCc.Text = mail.cc; EditMailForm.textBcc.Text = mail.bcc; EditMailForm.textSubject.Text = mail.subject; EditMailForm.textBody.Text = mail.body; // 重要度をForm3に渡す if (mail.priority == "urgent") { EditMailForm.comboPriority.SelectedIndex = 0; } else if (mail.priority == "normal") { EditMailForm.comboPriority.SelectedIndex = 1; } else { EditMailForm.comboPriority.SelectedIndex = 2; } // 添付ファイルが付いているとき if (mail.attach != "") { // 添付リストメニューを表示 EditMailForm.buttonAttachList.Visible = true; // 添付ファイルリストを分割して一覧にする EditMailForm.attachFileNameList = mail.attach.Split(','); // 添付ファイルの数だけメニューを追加する foreach (var attachFile in EditMailForm.attachFileNameList) { if (File.Exists(attachFile)) { appIcon = System.Drawing.Icon.ExtractAssociatedIcon(attachFile); EditMailForm.buttonAttachList.DropDownItems.Add(attachFile, appIcon.ToBitmap()); } else { EditMailForm.buttonAttachList.DropDownItems.Add(attachFile + "は削除されています。"); } } } // メール編集フォームを表示する EditMailForm.Show(); } }
/// <summary> /// 転送メールを作成 /// </summary> /// <param name="mail">メール</param> private void CreateFowerdMail(Mail mail) { string strFrom = ""; string strTo = ""; string strDate = ""; string strSubject = ""; Icon appIcon; MailEditorForm NewMailForm = new MailEditorForm(); // 親フォームをForm1に設定する NewMailForm.MainForm = this; // 送信箱の配列をForm3に渡す NewMailForm.SendList = collectionMail[SEND]; // 転送のために件名を設定する(件名は空白にする) NewMailForm.textAddress.Text = ""; NewMailForm.textSubject.Text = "Fw:" + mail.subject; nMail.Attachment atch = new nMail.Attachment(); // メールヘッダが存在するとき if (mail.header != "") { strFrom = atch.GetHeaderField("From:", mail.header); strTo = atch.GetHeaderField("To:", mail.header); strDate = atch.GetHeaderField("Date:", mail.header); strSubject = atch.GetHeaderField("Subject:", mail.header); } else { strFrom = AccountInfo.mailAddress; strTo = mail.address; strDate = mail.date; strSubject = mail.subject; } string fwHeader = "----------------------- Original Message -----------------------\r\n"; fwHeader = fwHeader + " From: " + strFrom + "\r\n To: " + strTo + "\r\n Date: " + strDate; fwHeader = fwHeader + "\r\n Subject:" + strSubject + "\r\n----\r\n\r\n"; // 添付なしメールのときはbodyを渡す if (!attachMailReplay) { // NewMailForm.textBody.Text = "\r\n\r\n--- Forwarded by " + Mail.mailAddress + " ---\r\n" + fwHeader + mail.body; // UTF-8でエンコードされたメールのときはattachMailBodyを渡す if (attachMailBody != "") { NewMailForm.textBody.Text = "\r\n\r\n--- Forwarded by " + AccountInfo.mailAddress + " ---\r\n" + fwHeader + attachMailBody; } else { // JISコードなどのメールは通常のbodyを渡す NewMailForm.textBody.Text = "\r\n\r\n--- Forwarded by " + AccountInfo.mailAddress + " ---\r\n" + fwHeader + mail.body; } } else { // 添付付きメールのときはattachMailBodyを渡す if (attachMailBody != "") { NewMailForm.textBody.Text = "\r\n\r\n--- Forwarded by " + AccountInfo.mailAddress + " ---\r\n" + fwHeader + attachMailBody; } else { NewMailForm.textBody.Text = "\r\n\r\n--- Forwarded by " + AccountInfo.mailAddress + " ---\r\n" + fwHeader + mail.body; } } // 送信メールで添付ファイルがあるとき if (mail.attach != "") { // 添付リストメニューを表示 NewMailForm.buttonAttachList.Visible = true; // 添付ファイルリストを分割して一覧にする NewMailForm.attachFileNameList = mail.attach.Split(','); // 添付ファイルの数だけメニューを追加する foreach (var attachFile in NewMailForm.attachFileNameList) { appIcon = System.Drawing.Icon.ExtractAssociatedIcon(attachFile); NewMailForm.buttonAttachList.DropDownItems.Add(attachFile, appIcon.ToBitmap()); } } else if (this.buttonAttachList.Visible) { // 受信メールで添付ファイルがあるとき // 添付リストメニューを表示 NewMailForm.buttonAttachList.Visible = true; // 添付ファイルの数だけメニューを追加する foreach (var attachFile in this.buttonAttachList.DropDownItems.Cast<ToolStripItem>().Select(i => i.Text)) { // 添付ファイルが存在するかを確認してから添付する if (File.Exists(Application.StartupPath + @"\tmp\" + attachFile)) { appIcon = System.Drawing.Icon.ExtractAssociatedIcon(Application.StartupPath + @"\tmp\" + attachFile); NewMailForm.buttonAttachList.DropDownItems.Add(Application.StartupPath + @"\tmp\" + attachFile, appIcon.ToBitmap()); } } } // メール新規作成フォームを表示する NewMailForm.Show(); }
/// <summary> /// 返信メールを作成 /// </summary> /// <param name="mail"></param> private void CreateReturnMail(Mail mail) { MailEditorForm NewMailForm = new MailEditorForm(); // 親フォームをForm1に設定する NewMailForm.MainForm = this; // 送信箱の配列をForm3に渡す NewMailForm.SendList = collectionMail[SEND]; // 返信のための宛先・件名を設定する NewMailForm.textAddress.Text = mail.address; NewMailForm.textSubject.Text = "Re:" + mail.subject; // 添付なしメールのときはbodyを渡す if (!attachMailReplay) { // UTF-8でエンコードされたメールのときはattachMailBodyを渡す if (attachMailBody != "") { NewMailForm.textBody.Text = "\r\n\r\n---" + mail.address + " was wrote ---\r\n\r\n" + attachMailBody; } else { NewMailForm.textBody.Text = "\r\n\r\n---" + mail.address + " was wrote ---\r\n\r\n" + mail.body; } } else { // 添付付きメールのときはattachMailBodyを渡す if (attachMailBody != "") { NewMailForm.textBody.Text = "\r\n\r\n---" + mail.address + " was wrote ---\r\n\r\n" + attachMailBody; } else { NewMailForm.textBody.Text = "\r\n\r\n---" + mail.address + " was wrote ---\r\n\r\n" + mail.body; } } // メール新規作成フォームを表示する NewMailForm.Show(); }
private void menuMailNew_Click(object sender, EventArgs e) { MailEditorForm NewMailForm = new MailEditorForm(); // 親フォームをForm1に設定する NewMailForm.MainForm = this; // 送信箱の配列をForm3に渡す NewMailForm.SendList = collectionMail[SEND]; // メール新規作成フォームを表示する NewMailForm.Show(); }