Example #1
0
        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;
                }
            }
        }
Example #2
0
        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("メールの送信時にエラーが発生しました。");
            }
        }