博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用正则表达式群发定制邮件
阅读量:4312 次
发布时间:2019-06-06

本文共 2508 字,大约阅读时间需要 8 分钟。

  朋友工作中需要将邮件群发给别人,但是每封信的抬头要修改接受人的称呼。一封一封的发肯定不现实,量大,而且易出错。

  1,导出邮箱联系人到本地

  

姓名,First Name,电子邮件,E-mail Address,手机,Home Phone,固定电话,别名,生日,备用邮箱,家庭地址,公司名称,备注

  

  导出后的格式如上所示。

  2,构造正则表达式,提取姓名与邮箱

  

([\u4E00-\u9FA5]{2,3}),([-a-zA-Z0-9_]+@[-a-zA-Z0-9]+\.com)

  前面提取的是姓名(match.Groups[1].Value),后边是邮箱(match.Groups[2].Value)

 

  3,我是将他们的对应关系 存入了Hashtable,然后问题就解决了。

1         Thread t = new Thread(new ThreadStart(() => 2                 { 3                     while (count < num) 4                     { 5                         MailMessage mail = new MailMessage(); 6                         mail.From = new MailAddress(txtUsername.Text + "@qq.com", txtSendname .Text ); 7                         mail.To.Add(new MailAddress(h[nm[count]].ToString(),nm[count ])); 8                         mail.Subject = txtSubject.Text; 9                         StringBuilder sb = new StringBuilder(1024 * 8);10                         string tmp = texContent.Text.Replace(txtOld.Text, txtOld.Text + nm[count]);11                         sb.Append(tmp);12                         mail.Body = sb.ToString();13                         mail.IsBodyHtml = true;14                         SmtpClient sc = new SmtpClient("smtp.qq.com");15                         sc.Credentials = new NetworkCredential(txtUsername.Text.Trim(), txtPassword.Text.Trim());16                         try17                         {18                             sc.Send(mail);19                             txtLog.Invoke(new Action(() =>20                                 {21                                     txtLog.AppendText(nm[count] + "√\r\n");22                                 }));23                         }24                         catch25                         {26                             txtLog.Invoke(new Action(() =>27                                 {28                                     txtLog.AppendText(nm[count] + "    " + h[nm[count]].ToString() + "is not available×××××××××\r\n");29                                 }));30                         }31                         count++;32                     }33                     if (count >= num)34                     {35                         MessageBox.Show("Send over!");36                         btnSend.Invoke(new Action(() =>37                         {38                             btnSend.Enabled = false;39                         }));40                     }41 42                 }));43             t.Start();

 

转载于:https://www.cnblogs.com/ittinybird/p/4266658.html

你可能感兴趣的文章
人工智能暑期课程实践项目——智能家居控制(一)
查看>>
前端数据可视化插件(二)图谱
查看>>
kafka web端管理工具 kafka-manager【转发】
查看>>
获取控制台窗口句柄GetConsoleWindow
查看>>
Linux下Qt+CUDA调试并运行
查看>>
51nod 1197 字符串的数量 V2(矩阵快速幂+数论?)
查看>>
OKMX6Q在ltib生成的rootfs基础上制作带QT库的根文件系统
查看>>
zabbix
查看>>
多线程基础
查看>>
完美解决 error C2220: warning treated as error - no ‘object’ file generated
查看>>
使用SQL*PLUS,构建完美excel或html输出
查看>>
SQL Server数据库笔记
查看>>
X-Forwarded-For伪造及防御
查看>>
android系统平台显示驱动开发简要:LCD驱动调试篇『四』
查看>>
Android 高仿微信头像截取 打造不一样的自定义控件
查看>>
Jenkins的初级应用(1)-Publish Over SSH
查看>>
【原】RDD专题
查看>>
第三周——构建一个简单的Linux系统MenuOS
查看>>
Docker 的两类存储资源 - 每天5分钟玩转 Docker 容器技术(38)
查看>>
Codeforces 257D
查看>>