邮件群发器
公司受金融危機影響,業務量大減,公司銷售人員一天到晚在網上找客戶名錄發郵件,這天公司領導一拍腦袋“開發一個郵件群發器,銷售人員提供客戶通迅錄,程序自動發送”,再而拍拍我肩膀"開發這個郵件群發器任務就交給你去處理了",雖然有三年多時間沒有再做過WinForm,但也沒辦法只好硬著頭皮拍拍胸脯"沒問題"。
馬上登錄園子"WinForm 郵件"搜索,真慶辛結果還不少。照著大牛們的文章,很快就可以接發郵件了,看來園子不愧我們程序員的百科全書。
不過期間還是碰到了一些小問題,比如qq郵箱始終通不過身份驗證(到現在也沒解決,最后放棄了QQ郵箱),還在多線程進度顯示的問題(最后也是在園子里找到解決思路),在此貼部份代碼,以備忘。
??1#region?發送郵件??2????????private?void?SendEmail()??3????????{??4????????????try??5????????????{??6????????????????MethodInvoker?mi?=?new?MethodInvoker(this.ShowProcessBar);??7????????????????this.BeginInvoke(mi);??8????????????????MailMessage?mail?=?new?MailMessage();??9????????????????mail.From?=?new?MailAddress(txtAccount.Text?+?cmbServer.Text);?10????????????????mail.Subject?=?txtSubject.Text;?11????????????????mail.SubjectEncoding?=?System.Text.Encoding.UTF8;?12????????????????mail.IsBodyHtml?=?isHTML.Checked;?13????????????????mail.BodyEncoding?=?System.Text.Encoding.UTF8;?14????????????????mail.Priority?=?MailPriority.High;?15????????????????mail.ReplyTo?=?mail.From;?16????????????????if?(lstAttachFile.Items.Count>0)?17????????????????{????????????????18????????????????????Attachment?atta?=?null;?19????????????????????foreach?(object?li?in?lstAttachFile.Items)?20????????????????????{?21????????????????????????string?fn?=?li.ToString();?22????????????????????????if?(System.IO.File.Exists(fn))?23????????????????????????{?????????????????????????????24????????????????????????????atta?=?new?Attachment(fn);?25????????????????????????????ContentDisposition?dispotion?=?atta.ContentDisposition;?26????????????????????????????dispotion.CreationDate?=?File.GetCreationTime(fn);?27????????????????????????????dispotion.ModificationDate?=?File.GetLastWriteTime(fn);?28????????????????????????????dispotion.ReadDate?=?File.GetLastAccessTime(fn);?29????????????????????????????mail.Attachments.Add(atta);?30????????????????????????}?31????????????????????}?32????????????????}?33????????????????SmtpClient?client?=?GetSmtpClien(cmbServer.Text);?34????????????????int?index?=?1;?35????????????????foreach?(Contract?item?in?lstContract)?36????????????????{?37????????????????????mail.To.Clear();?38????????????????????mail.To.Add(new?MailAddress(item.MailAddress));?39????????????????????StringBuilder?sbHTML?=?new?StringBuilder();?40????????????????????if?(isHTML.Checked)?41????????????????????{?42?????????????????????????43????????????????????????sbHTML.Append("<h4>"?+?item.CompanyName?+?"</h4>");?44????????????????????????sbHTML.Append("<h4>"?+?item.Name?+?":</h4>");?45????????????????????????sbHTML.Append("<p>"?+?currentBodyHtml?+?"</p>");?46????????????????????????sbHTML.Append("<hr/>");?47????????????????????????sbHTML.Append("<p>"?+?txtSin.Text?+?"</p>");?48?????????????????????????49????????????????????}?50????????????????????else?51????????????????????{?52????????????????????????sbHTML.Append(item.CompanyName?+?"\r\n");?53????????????????????????sbHTML.Append(item.Name?+?":\r\n");?54????????????????????????sbHTML.Append(currentBodyHtml?+?"\r\n");?????????????????????????55????????????????????????sbHTML.Append(txtSin.Text);??56????????????????????}?57????????????????????mail.Body?=?sbHTML.ToString();?58????????????????????client.Send(mail);?59????????????????????if?(IncreaseEvent?!=?null)?60????????????????????{?61????????????????????????IncreaseEvent(index);?62????????????????????}?63????????????????????index++;?64????????????????}?65????????????????//mail.?66????????????????//object?stateMsg?=?mail;?67????????????????MessageBox.Show(this,?"發送完畢!",?"提示",?MessageBoxButtons.OK,?MessageBoxIcon.Information);?68????????????????MethodInvoker?mi2?=?new?MethodInvoker(this.HideProccessBar);?69????????????????this.BeginInvoke(mi2);?70????????????}?71????????????catch?(Exception?ex)?72????????????{?73????????????????MessageBox.Show(this,?ex.Message,?"提示",?MessageBoxButtons.OK,?MessageBoxIcon.Information);?74????????????????MethodInvoker?mi3?=?new?MethodInvoker(this.HideProccessBar);?75????????????????this.BeginInvoke(mi3);?76????????????}?77????????}?78????????#endregion?79?80????????#region?獲取SmptClient?81????????private?SmtpClient?GetSmtpClien(string?serverType)?82????????{?83????????????SmtpClient?client?=?new?SmtpClient("");?84????????????switch?(serverType)?85????????????{?86????????????????case?"@163.com":?87????????????????????client.Host?=?"smtp.163.com";?88????????????????????client.UseDefaultCredentials?=?false;?89????????????????????client.EnableSsl?=?false;?90????????????????????client.DeliveryMethod?=?SmtpDeliveryMethod.Network;?91????????????????????client.Credentials?=?new?System.Net.NetworkCredential(txtAccount.Text,?txtPassword.Text);?92????????????????????break;?93????????????????case?"@qq.com":?94????????????????????client.Host?=?"smtp.qq.com";?95????????????????????client.UseDefaultCredentials?=?true;?96????????????????????client.EnableSsl?=?false;?97????????????????????client.Port?=?25;?98????????????????????client.DeliveryMethod?=?SmtpDeliveryMethod.Network;?99????????????????????client.Credentials?=?new?System.Net.NetworkCredential(txtAccount.Text,?txtPassword.Text);100????????????????????break;101????????????????case?"@gmail.com":102????????????????????client.Host?=?"smtp.gmail.com";103????????????????????//client.UseDefaultCredentials?=?false;104????????????????????client.EnableSsl?=?true;105????????????????????client.Port?=?587;106????????????????????//client.DeliveryMethod?=?SmtpDeliveryMethod.Network;107????????????????????client.Credentials?=?new?System.Net.NetworkCredential(txtAccount.Text,?txtPassword.Text);108????????????????????break;109????????????????case?"@winccess.com":110????????????????????client.Host?=?"mail.winccess.com";111????????????????????//client.UseDefaultCredentials?=?false;112????????????????????client.EnableSsl?=?false;113????????????????????//client.Port?=?25;114????????????????????//client.DeliveryMethod?=?SmtpDeliveryMethod.Network;115????????????????????client.Credentials?=?new?System.Net.NetworkCredential(txtAccount.Text?+?serverType,?txtPassword.Text);116????????????????????break;117????????????????default:118????????????????????break;119????????????}????????????120????????????return?client;121????????}122????????#endregion總結
- 上一篇: 五叶神香烟价格表(五叶神香烟价格)
- 下一篇: 山地自行车(山地自行车品牌排行榜)