Exemple #1
0
        ///-----------------------------------------------------------------------------
        /// <summary>
        ///     出勤簿・車両走行報告書エクセルシートを送信する 【出勤簿要求時】</summary>
        /// <param name="sD">
        ///     メールデータ</param>
        /// <param name="file">
        ///     添付する出勤簿・車両走行報告書エクセルシートのパスを含むファイル名</param>
        ///-----------------------------------------------------------------------------
        private void sendXlsFile(string pToAdd, string [] file)
        {
            // メール設定情報
            if (!dts.メール設定.Any(a => a.ID == global.mailKey))
            {
                MessageBox.Show("メール設定情報が未登録のためメール送信はできません", "メール設定未登録", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            mailReceiveDataSet.メール設定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 = "出勤簿・車両走行報告書エクセルシート";

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

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

            try
            {
                toAdd  = pToAdd;
                toName = "";

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

                //本文
                message.Body  = "";
                message.Body += "要求された出勤簿・車両走行報告書エクセルシートを送付します。";

                // 添付ファイル
                for (int i = 0; i < file.Length; i++)
                {
                    Attachment att = new Attachment(file[i]);
                    message.Attachments.Add(att);
                }

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

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

                // ログ書き込み
                putMaillog(toAdd, message.Subject, "送信しました");

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

                // ログ書き込み
                putMaillog(toAdd, message.Subject, ex.Message);
            }
            finally
            {
                // 後片付け
                message.Dispose();
            }
        }
Exemple #2
0
        ///-----------------------------------------------------------------------------
        /// <summary>
        ///     社員認証不可時の通知メールを送信する 【出勤簿要求時】</summary>
        /// <param name="sD">
        ///     メールデータ</param>
        ///-----------------------------------------------------------------------------
        private void sendUnAuthMailReq(string[] sD)
        {
            // メール設定情報
            if (!dts.メール設定.Any(a => a.ID == global.mailKey))
            {
                MessageBox.Show("メール設定情報が未登録のためメール送信はできません", "メール設定未登録", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            mailReceiveDataSet.メール設定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 = "マスター未登録社員の出勤簿が要求されました";

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

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

            try
            {
                toAdd  = sD[3];
                toName = "";

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

                //本文
                message.Body  = "";
                message.Body += "要求された出勤簿データの個人コードはマスター未登録です。" + Environment.NewLine;
                message.Body += "個人コードを確認して再度要求処理を行ってください。" + Environment.NewLine + Environment.NewLine;
                message.Body += "【要求された出勤簿データ】" + Environment.NewLine;
                message.Body += "対象年月:" + sD[0] + "年" + sD[1] + "月" + Environment.NewLine;
                message.Body += "個人コード:" + sD[2] + " ※マスター未登録コードです。";

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

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

                // ログ書き込み
                putMaillog(toAdd, message.Subject, "送信しました");

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

                // ログ書き込み
                putMaillog(toAdd, message.Subject, ex.Message);
            }
            finally
            {
                // 後片付け
                message.Dispose();
            }
        }