Exemplo n.º 1
0
        ///--------------------------------------------------------------------------
        /// <summary>
        ///     休日カレンダー、工事・所属部署マスター、メール設定登録確認 </summary>
        /// <returns>
        ///     true:登録済み, false:未登録</returns>
        ///--------------------------------------------------------------------------
        private bool hpStatus()
        {
            genbaDataSet dts = new genbaDataSet();

            genbaDataSetTableAdapters.M_休日TableAdapter  adp  = new genbaDataSetTableAdapters.M_休日TableAdapter();
            genbaDataSetTableAdapters.M_工事TableAdapter  pAdp = new genbaDataSetTableAdapters.M_工事TableAdapter();
            genbaDataSetTableAdapters.メール設定TableAdapter mAdp = new genbaDataSetTableAdapters.メール設定TableAdapter();

            adp.Fill(dts.M_休日);
            pAdp.Fill(dts.M_工事);
            mAdp.Fill(dts.メール設定);

            // 休日カレンダーと工事・所属部署、メール設定が登録済みか?
            if (dts.M_休日.Count() > 0 && dts.M_工事.Count() > 0 && dts.メール設定.Count() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 2
0
        ///-----------------------------------------------------------------------------
        /// <summary>
        ///     依頼メールを送信する </summary>
        /// <param name="attachFile">
        ///     添付ファイル名</param>
        /// <param name="sSubject">
        ///     件名</param>
        /// <param name="sBody">
        ///     メール本文</param>
        /// <param name="testFlg">
        ///     0:本番送信、1:テスト送信</param>
        ///-----------------------------------------------------------------------------
        public static void sendKintaiMail(string attachFile, string sSubject, string sBody, int testFlg)
        {
            genbaDataSet dts = new genbaDataSet();

            genbaDataSetTableAdapters.メール設定TableAdapter adp = new genbaDataSetTableAdapters.メール設定TableAdapter();
            adp.Fill(dts.メール設定);

            // メール設定情報
            if (!dts.メール設定.Any(a => a.ID == global.mailKey))
            {
                MessageBox.Show("メール設定情報が未登録のためメール送信はできません", "メール設定未登録", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            genbaDataSet.メール設定Row r = dts.メール設定.Single(a => a.ID == global.mailKey);

            // smtpサーバーを指定する
            SmtpClient client = new SmtpClient();

            client.Host           = r.SMTPサーバー;
            client.Port           = r.SMTPポート番号;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Credentials    = new System.Net.NetworkCredential(r.ログイン名, r.パスワード);
            client.EnableSsl      = false;
            client.Timeout        = 10000;

            //メッセージインスタンス生成
            MailMessage message = new MailMessage();

            //送信元
            message.From = new MailAddress(r.メールアドレス, r.メール名称);

            //件名
            message.Subject = sSubject;

            //// Cc
            //if (txtCc.Text != string.Empty)
            //{
            //    message.CC.Add(new MailAddress(txtCc.Text));
            //}

            //// Bcc
            //if (txtBcc.Text != string.Empty)
            //{
            //    message.Bcc.Add(new MailAddress(txtBcc.Text));
            //}

            // 送信メールカウント
            int mCnt = 0;

            string toAdd  = "";
            string toName = "";

            try
            {
                // 送信先テストモード
                if (Properties.Settings.Default.mailTest == global.FLGON)
                {
                    //// テスト送信先
                    //string[] toAdd = { "*****@*****.**", "*****@*****.**", "*****@*****.**" };

                    //for (int i = 0; i < toAdd.Length; i++)
                    //{
                    //    // 宛先
                    //    message.To.Clear();
                    //    message.To.Add(new MailAddress(toAdd[i]));

                    //    // 複数送信の時、2件目以降のCc/Bcc設定はクリアする
                    //    if (mCnt > 0)
                    //    {
                    //        message.CC.Clear();
                    //        message.Bcc.Clear();
                    //    }

                    //    // 送信する
                    //    client.Send(message);

                    //    // 送信ログ書き込み
                    //    DateTime nDt = DateTime.Now;
                    //    mllogUpdate("", toAdd[i], r.メール名称, r.メールアドレス, sSubject, sMailText, nDt);

                    //    // カウント
                    //    mCnt++;
                    //}
                }
                else if (Properties.Settings.Default.mailTest == global.FLGOFF)
                {
                    toAdd  = r.送信先アドレス;
                    toName = "";

                    //宛先
                    message.To.Clear();
                    message.To.Add(new MailAddress(toAdd, toName));

                    // 複数送信の時、2件目以降のCc/Bcc設定はクリアする
                    if (mCnt > 0)
                    {
                        message.CC.Clear();
                        message.Bcc.Clear();
                    }

                    //本文
                    message.Body = sBody;

                    // 添付ファイル・勤怠データ
                    Attachment att = new Attachment(attachFile, "text/csv");
                    message.Attachments.Add(att);

                    message.BodyEncoding = System.Text.Encoding.GetEncoding(50220);

                    // 送信する
                    client.Send(message);

                    // 本送信のとき
                    if (testFlg == global.flgOff)
                    {
                        MessageBox.Show("出勤簿メールを送信しました", "結果", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        // ログ書き込み
                        putMaillog(toAdd, sSubject, "送信しました");
                    }

                    // カウント
                    mCnt++;
                }
            }
            catch (SmtpException ex)
            {
                //エラーメッセージ
                string errMsg = ex.Message + Environment.NewLine + Environment.NewLine + "メール情報設定画面で設定内容を確認してください。その後、再実行してください。";
                MessageBox.Show(errMsg, "メール送信失敗", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                // ログ書き込み
                putMaillog(toAdd, sSubject, ex.Message);
            }
            finally
            {
                //// 送信あり
                //if (mCnt > 0)
                //{
                //    MessageBox.Show(mCnt.ToString() + "件の出勤簿メールを送信しました");

                //    // 本送信の時
                //    if (testFlg == global.flgOff)
                //    {
                //        // ログ書き込み
                //        putMaillog(toAdd, sSubject, "送信しました");
                //    }
                //}

                // 後片付け
                message.Dispose();
            }
        }