示例#1
0
        private void Send(MailReceiver mr)
        {
            SmtpClient client = new SmtpClient();
            var        mail   = new MailMessage();

            mail.To.Add(mr.MailAddress);
            string from = client.Credentials.GetCredential(client.Host, client.Port, "Basic").UserName;

            mail.From            = new MailAddress(from, User, Encoding.UTF8);
            mail.Subject         = Subject;
            mail.SubjectEncoding = Encoding.UTF8;
            mail.Body            = Body;
            mail.BodyEncoding    = Encoding.UTF8;
            mail.IsBodyHtml      = false;
            mail.Attachments.Add(new Attachment(mr.AppendixPath));


            client.Timeout = 5000;
            object userToken = mail;

            try
            {
                client.SendAsync(mail, userToken);
                client.SendCompleted += client_SendCompleted;
            }
            catch (Exception ex)
            {
                if (SendCompleted != null)
                {
                    string log = string.Format("发送异常:{0}", ex.Message);
                    SendCompleted(log);
                }
                mail.Dispose();
            }
        }
示例#2
0
        private void btnTest_Click(object sender, EventArgs e)
        {
            if (_mailsend == null)
            {
                _mailsend = new MailSender();
            }
            _mailsend.Body           = "Test";
            _mailsend.Subject        = "Test";
            _mailsend.User           = "******";
            _mailsend.SendCompleted += OnSendCompleted;
            var ml = new List <MailReceiver>();
            var ms = new MailReceiver();

            ms.MailAddress  = @"*****@*****.**";
            ms.AppendixPath = @"d:\1.txt";
            ml.Add(ms);
            _mailsend.Send(ml);
        }
示例#3
0
        private void Process()
        {
            ExcelOperate excelOp = null;

            try
            {
                excelOp = new ExcelOperate();
                object data = new object();
                int    row  = 0;
                int    col  = 0;

                excelOp.Open(_encrtyPath);
                excelOp.Read(out data, out row, out col);
                var pp = new PersonalPassword();
                var ml = new List <MailReceiver>();
                pp.Initialize(data, row, col);
                excelOp.Close();
                ShowProgressBar();

                data = null;
                row  = 0;
                col  = 0;
                excelOp.Open(_salaryPath);
                excelOp.Read(out data, out row, out col);
                var payment = new Payment();
                payment.Initialize(data, row, col);
                ShowProgressBar();

                string folderPath = _savePath;

                for (int i = 0; i < pp.Count; i++)
                {
                    var    name     = pp[i];
                    var    passWord = pp[name];
                    string fileName = folderPath + name + ".xls";
                    excelOp.NewFile();
                    object[] value = payment.GetValueByName(name);
                    if (value == null)
                    {
                        string log = "没有找到名为[" + name + "]的工资信息";
                        OnSendCompleted(log);
                        continue;
                    }
                    excelOp.Write(value, 2, payment.ColCount);
                    excelOp.Save(fileName, passWord);
                    excelOp.Close();

                    var ms = new MailReceiver();
                    ms.MailAddress  = pp.GetMail(name);
                    ms.AppendixPath = fileName;
                    ml.Add(ms);
                }
                ShowProgressBar();

                if (MessageBox.Show("即将发送邮件,请确认!", "确认",
                                    MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                {
                    _mailsend.Send(ml);
                }

                ShowProgressBar();
            }
            catch (Exception ex)
            {
                OnSendCompleted(ex.Message);
                OnSendCompleted(ex.StackTrace);
            }
            finally
            {
                excelOp.Quit();
            }
        }