private void PeriodicReportMail() { //プロパティファイルを読み込む Class_PropertyMail prop_mail = new Class_PropertyMail(); if (prop_mail.mailSendCheck.IndexOf("yes", StringComparison.OrdinalIgnoreCase) > -1) { // 現在時を取得 DateTime datetime = DateTime.Now; //DateTime datetime_now = new DateTime(datetime.Year, datetime.Month, datetime.Day, datetime.Hour, datetime.Minute, 0); //年, 月, 日, 時間, 分, 秒 string[] str_array; string sendtm = prop_mail.sendtime, hour = "00", min = "00"; if (sendtm != "") { str_array = sendtm.Split(':'); if (str_array.Length > 1) { hour = str_array[0]; min = str_array[1]; } } //設定時刻を過ぎたらメールを送信する。 //DateTime datetime_set = new DateTime(datetime.Year, datetime.Month, datetime.Day, Int32.Parse(hour), Int32.Parse(min), 0); //年, 月, 日, 時間, 分, 秒 //現在日時の取得 int datetime_now; datetime_now = Int32.Parse(datetime.Hour.ToString("00") + datetime.Minute.ToString("00")); //設定日時の取得 int datetime_set; datetime_set = Int32.Parse(hour.PadLeft(2, '0') + min.PadLeft(2, '0')); if ((datetime_now > datetime_set) && mailsendflg == false) { mailsendflg = true; Class_SendMail sendmail_cls = new Class_SendMail(); string retstr = sendmail_cls.send(prop_mail); this.TaskBarLabel1.Text = retstr; } //日が変わったらフラグを変える if ((datetime_now < datetime_set) && mailsendflg == true) { mailsendflg = false; } } }
public string send(Class_PropertyMail prop) { try { //JISコード System.Text.Encoding enc = System.Text.Encoding.GetEncoding(50220); //MailMessageの作成 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage("*****@*****.**", prop.sendAddress); msg.Subject = prop.subject; msg.SubjectEncoding = enc; //本文と、本文の文字コードを設定する msg.Body = bodyText; //文字コード msg.BodyEncoding = enc; //「content-transfer-encoding」を「7bit」にする msg.BodyTransferEncoding = System.Net.Mime.TransferEncoding.SevenBit; System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient(); //SMTPサーバーなどを設定する sc.Host = prop.smtpServer; sc.Port = Int16.Parse(prop.smtpPort); //ユーザー名とパスワードを設定する(AUTH LOGIN認証) if (prop.authCheck.IndexOf("yes", StringComparison.OrdinalIgnoreCase) > -1) { sc.Credentials = new System.Net.NetworkCredential(prop.userID, prop.password); } sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; //メッセージを送信する sc.Send(msg); //後始末 msg.Dispose(); sc.Dispose(); logger.Info("メールを送信しました。"); return("メールを送信しました。"); } catch (Exception ex) { logger.Error("メールの送信時にエラーが発生しました。" + ex.Message + " " + ex.StackTrace); return("メールの送信時にエラーが発生しました。"); } }