public frmMsMail() { InitializeComponent(); // データテーブルにデータを読み込む adp.Fill(dts.メール設定); }
///-------------------------------------------------------------------------- /// <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); } }
///----------------------------------------------------------------------------- /// <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(); } }