using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;

namespace 顧客分析君
{
    public partial class _201メール作成 : Form
    {
        ////////////////////////////////////////////////////////////////////////
        // メンバ変数
        ////////////////////////////////////////////////////////////////////////
        #region メンバ変数
        #endregion

        ////////////////////////////////////////////////////////////////////////
        // 公開 共通メソッド 
        ////////////////////////////////////////////////////////////////////////
        #region 公開 共通メソッド

        public _201メール作成()
        {
            InitializeComponent();
        }

        #endregion


        ////////////////////////////////////////////////////////////////////////
        // 非公開 共通メソッド
        ////////////////////////////////////////////////////////////////////////
        #region 非公開 共通メソッド

        private void 初期化()
        {
            //mstr本文テンプレート = "\r\n\r\n\r\n\r\n\r\n";
            ////mstr本文テンプレート += "※11月1日に、顧客分析君2010のエディションが改定されます。 \r\n";
            ////mstr本文テンプレート += "ダウンロード販売している「顧客分析君2010」は、「顧客分析君2010 Express」 \r\n";
            ////mstr本文テンプレート += "へ名称を変更し、販売価格は12,800円へ改定されます。 \r\n";
            ////mstr本文テンプレート += "販売パートナー契約(OEM含む)を締結したパートナー様へは、一律7,800円でご提 \r\n";
            ////mstr本文テンプレート += "供し、販売価格は12,800円以上から任意の金額を上乗せして販売して頂く予定で \r\n";
            ////mstr本文テンプレート += "おります。 \r\n";
            ////mstr本文テンプレート += "その他のエディションについては、「エディション」ページを参照下さい。 \r\n";
            ////mstr本文テンプレート += "http://garfie.weblogs.jp/kokyakubunseki2010/18/index.html \r\n";
            ////mstr本文テンプレート += " \r\n";
            //mstr本文テンプレート += "-------------------------------------------------- \r\n";
            //mstr本文テンプレート += "Next systems　佐藤陽平  \r\n";
            //mstr本文テンプレート += "E-Mail : satouyouhei@nextsystems.biz \r\n";
            //mstr本文テンプレート += "Tel    : 03 6304 5855 \r\n";
            //mstr本文テンプレート += "Mobile : 090 3084 8740 \r\n";
            //mstr本文テンプレート += "URL    : http://www.nextsystems.biz \r\n";
            //mstr本文テンプレート += "Blog   : http://garfie.weblogs.jp/life_of_dev/ \r\n";
            //mstr本文テンプレート += "-------------------------------------------------- \r\n";

            //txt作成_to.Text = "";
            //txt作成_from.Text = "satouyouhei@nextsystems.biz";
            //txt作成_件名.Text = "Next systems 佐藤 と申します。";
            //txt作成_本文.Text = mstr本文テンプレート;
            txt作成_to.Text = Properties.Settings.Default.メール配信_To;
            txt作成_from.Text = Properties.Settings.Default.メール配信_From;
            txt作成_件名.Text = Properties.Settings.Default.メール配信_件名;
            txt作成_本文.Text = Properties.Settings.Default.メール配信_本文;
            txt作成_控えメール送付先.Text = Properties.Settings.Default.メール配信_控えメール送付先;

            txt内容確認_to.Text = "";
            txt内容確認_from.Text = "";
            txt内容確認_件名.Text = "";
            txt内容確認_本文.Text = "";
            txt内容確認_控えメール送付先.Text = "";

            chk項目1.Checked = false;
            chk項目2.Checked = false;
            chk項目3.Checked = false;
            chk項目4.Checked = false;
            chk項目5.Checked = false;
        }

        #endregion


        ////////////////////////////////////////////////////////////////////////
        // イベントハンドラ
        ////////////////////////////////////////////////////////////////////////
        #region イベントハンドラ

        private void _201メール作成_Load(object sender, EventArgs e)
        {
            try
            {
                //this.Width = 507;
                //this.Height = 700;
                grp作成.Width = this.Width - 40;
                grp作成.Height = this.Height - 60;
                grp内容確認.Left = grp作成.Left;
                grp内容確認.Top = grp作成.Top;
                grp内容確認.Width = grp作成.Width;
                grp内容確認.Height = grp作成.Height;

                chk項目1.Text = Properties.Settings.Default.メール配信_チェック項目1;
                chk項目2.Text = Properties.Settings.Default.メール配信_チェック項目2;
                chk項目3.Text = Properties.Settings.Default.メール配信_チェック項目3;
                chk項目4.Text = Properties.Settings.Default.メール配信_チェック項目4;
                chk項目5.Text = Properties.Settings.Default.メール配信_チェック項目5;

                if (chk項目1.Text == "")
                    chk項目1.Enabled = false;
                if (chk項目2.Text == "")
                    chk項目2.Enabled = false;
                if (chk項目3.Text == "")
                    chk項目3.Enabled = false;
                if (chk項目4.Text == "")
                    chk項目4.Enabled = false;
                if (chk項目5.Text == "")
                    chk項目5.Enabled = false;

                初期化();
            }
            catch (Exception ex)
            {
                Program.業務共通処理.ErrorLog("_201メール作成", "_201メール作成_Load", ex);
            }
        }

        private void btn送信_Click(object sender, EventArgs e)
        {
            try
            {
                //if (txt作成_to.Text == "")
                //{ 
                //    MessageBox.Show("To が入力されていません", "入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}
                //if (txt作成_from.Text == "")
                //{
                //    MessageBox.Show("From が入力されていません", "入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}
                //if (txt作成_件名.Text == "")
                //{
                //    MessageBox.Show("件名 が入力されていません", "入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}
                //if (txt作成_本文.Text == "")
                //{
                //    MessageBox.Show("本文 が入力されていません", "入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}
                if (Program.業務共通処理.メール送信内容チェック(txt作成_to.Text, txt作成_from.Text, txt作成_件名.Text, txt作成_本文.Text, txt作成_控えメール送付先.Text) == false)
                    return;


                txt内容確認_to.Text = txt作成_to.Text;
                txt内容確認_from.Text = txt作成_from.Text;
                txt内容確認_件名.Text = txt作成_件名.Text;
                //txt内容確認_本文.Text += txt作成_本文.Text;
                txt内容確認_本文.Text = txt作成_本文.Text;
                txt内容確認_控えメール送付先.Text = txt作成_控えメール送付先.Text;

                grp作成.Visible = false;
                grp内容確認.Visible = true;

            }
            catch (Exception ex)
            {
                Program.業務共通処理.ErrorLog("_201メール作成", "btn送信_Click", ex);
            }
        }


        private void btnキャンセル2_Click(object sender, EventArgs e)
        {
            try
            {
                this.Close();
            }
            catch (Exception ex)
            {
                Program.業務共通処理.ErrorLog("_201メール作成", "btnキャンセル2_Click", ex);
            }
        }


        private void btn送信確定_Click(object sender, EventArgs e)
        {
            try
            {
                //if (chkToのメールアドレスに間違いは無い.Checked == false ||
                //    chk件名に間違いは無い.Checked == false ||
                //    chk最新の本文を使っている.Checked == false ||
                //    chk最新の宛名を正しく記入している.Checked == false)
                //{
                //    MessageBox.Show("チェック項目に未チェックのものがあります。", "入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //    return;
                //}
                //if (DialogResult.Yes != MessageBox.Show(this, string.Format("メール送信を開始します、宜しいですか？", this.Text)
                //    , this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                //    return;
                if (Program.業務共通処理.メール送信最終チェック(this, chk項目1, chk項目2, chk項目3, chk項目4, chk項目5) == false)
                    return;

                //MailMessage msg = new MailMessage(txt内容確認_from.Text, txt内容確認_to.Text, txt内容確認_件名.Text, txt内容確認_本文.Text);
                //SmtpClient sc = new SmtpClient("smtp.e-mail.jp", 587);
                //sc.Credentials = new System.Net.NetworkCredential("satouyouhei", "youhei");
                //sc.EnableSsl = false;
                //sc.Send(msg);
                //msg.Dispose();
                try
                {
                    Program.業務共通処理.メール送信(txt内容確認_to.Text, txt内容確認_from.Text, txt内容確認_件名.Text, txt内容確認_本文.Text);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(txt内容確認_to.Text + " へのメール送信が失敗しました。\r\nこの後の処理は中断されました。\r\nメールアドレスが間違っているか、SMTPサーバーの設定が間違っているか、不正な文字が含まれている可能性があります。\r\n\r\n" + ex.Message, "メール送信エラー", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    grp作成.Visible = true;
                    grp内容確認.Visible = false;

                    return;
                }

                //string strTmp = txt内容確認_控えメール送付先.Text.Replace("\r\n", "\n");
                //string[] strTo = strTmp.Split('\n');
                //for (int iRow = 0; iRow < strTo.Length; iRow++)
                //    Program.業務共通処理.メール送信(txt内容確認_from.Text, strTo[iRow], "【控え】" + txt内容確認_件名.Text + "　To：" + txt内容確認_to.Text, txt内容確認_本文.Text);
                if (Program.業務共通処理.控えメール送信(txt内容確認_控えメール送付先.Text, txt内容確認_to.Text, txt内容確認_from.Text, txt内容確認_件名.Text, txt内容確認_本文.Text) == false)
                {
                    grp作成.Visible = true;
                    grp内容確認.Visible = false;
                }

                MessageBox.Show("メールの送信が完了しました。", "メール送信", MessageBoxButtons.OK, MessageBoxIcon.Information);

                初期化();
                grp作成.Visible = true;
                grp内容確認.Visible = false;

            }
            catch (Exception ex)
            {
                Program.業務共通処理.ErrorLog("_201メール作成", "btn送信確定_Click", ex);
            }
        }

        private void btnキャンセル_Click(object sender, EventArgs e)
        {
            try
            {
                grp作成.Visible = true;
                grp内容確認.Visible = false;
            }
            catch (Exception ex)
            {
                Program.業務共通処理.ErrorLog("_201メール作成", "btnキャンセル_Click", ex);
            }
        }

        private void btn初期値設定_Click(object sender, EventArgs e)
        {
            try
            {
                _103初期値設定 _103初期値設定 = null;
                _103初期値設定 = new _103初期値設定();
                _103初期値設定.miMode = 1;
                _103初期値設定.ShowDialog();

            }
            catch (Exception ex)
            {
                Program.業務共通処理.ErrorLog("_201メール作成", "btn初期値設定_Click", ex);
            }
        }


        #endregion



    }
}
