Ejemplo n.º 1
0
        /// <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();
            }
        }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
        /// <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();
        }
Ejemplo n.º 4
0
        private void menuMailNew_Click(object sender, EventArgs e)
        {
            MailEditorForm NewMailForm = new MailEditorForm();

            // 親フォームをForm1に設定する
            NewMailForm.MainForm = this;

            // 送信箱の配列をForm3に渡す
            NewMailForm.SendList = collectionMail[SEND];

            // メール新規作成フォームを表示する
            NewMailForm.Show();
        }