利用正则表达式群发定制邮件

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

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

  

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

  

  导出后的格式如上所示。

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

  

([\u4E00-\u9FA5]{2,3}),([-a-zA-Z0-9_][email protected][-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                         try
17                         {
18                             sc.Send(mail);
19                             txtLog.Invoke(new Action(() =>
20                                 {
21                                     txtLog.AppendText(nm[count] + "√\r\n");
22                                 }));
23                         }
24                         catch
25                         {
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();
时间: 2024-11-10 07:46:35

利用正则表达式群发定制邮件的相关文章

利用正则表达式来实现求一个数学表达式的和

1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))求上述表达式的结果分析:对于上述表达式,涉及的括号及运算符较多,需使用正则表达式来匹配相应的字符,将字符进行分开计算1.提取最里层括号里面的内容2.计算最里层括号内的乘除运算,并将结果替换到原表达式3.循环执行前两步的结果 1 import re 2 # formula = "1-2*((60-30+(-40.0/5)*(9-2*5/3+7/3*99/

利用perl模块发邮件

vim sendmail.pl #!/usr/bin/perl -w use MIME::Lite; sub perl_sendmail {         my $mail_to=shift;         #my $mail_to="$_[0]";         my $from=shift;         #my $from = "$_[1]";         my $subject=shift;         #my $subject = &quo

利用正则表达式去掉html代码

using System.Text.RegularExpressions; // 利用正则表达式去掉"<"和">"之间的内容. private string StripHT(string strHtml){   Regex regex=new Regex("<.+?>",RegexOptions.IgnoreCase);   string strOutput=regex.Replace(strHtml,"&quo

JavaMail(二):利用JavaMail发送复杂邮件

上一篇文章我们学习了利用JavaMail发送简单邮件,这篇文章我们利用JavaMail发送稍微复杂一点的邮件(包含文本.图片.附件).这里只贴出核心代码,其余代码可参考JavaMail(一):利用JavaMail发送简单邮件 封装发送邮件代码 /** * 封装发送邮件代码 * @author fly * @时间 2017-05-09 * */ public class Email { /** * 创建并发送一封包含文本.图片.附件的复杂邮件 * @throws Exception */ publ

利用BusyBox ~私人定制 My LINUX~

前言 我在今天在这里跟大家详细地探讨一下Linux系统的定制过程和实现例如.用户能够远程登录:和Nginx能够稳定地运行在我们私人定制的LINUX系统上.一步一步从头开始定制属于我们自己的系统. 正文    首先我们先来简单的介绍一下我们这里定制属于自己的Linux系统的基本元素. 一个定制的linux内核+一个定制的busybox就可以定制一个小型的Linux操作系统了,安装Dropbear和Nginx,Linux的组成 部分包括内核空间和用户空间.而用户空间其实就是根文件系统.用户空间中又包

C#利用正则表达式实现字符串搜索---ShinePans

一.字符串搜索 正则表达式由两种基本字符类型组成:原义(正常)文本字符和元字符.元字符组为正则表达式提供了处理能力. 一般表达式语言是一种可以编写搜索表达式的语言.在该语言中,可以把文档中要搜索的文本.转义序列和特定含义的其他字符组合在一起,例如序列表示一个字的开头和结尾(子的边界),如果要表示正在查找的以字符th开头的字,就可以编写一般表达式th(即序列字符界是-t-h).如果要搜索所有以th结尾的字,就可以编写th(序列t-h-字边界).但是,一般表达式要比这复杂得多,例如,可以在搜索

利用正则表达式验证邮箱

/利用正则表达式验证邮箱+ (BOOL)isValidateEmail:(NSString *)email{        NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emai

利用正则表达式匹配输入内容 ----正则表达式

//利用正则表达式匹配输入内容 package regex; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(Sys

OC利用正则表达式获取网络资源(网络爬虫)

在开发项目的过程,很多情况下我们需要利用互联网上的一些数据,在这种情况下,我们可能要写一个爬虫来爬我们所需要的数据.一般情况下都是利用正则表达式来匹配Html,获取我们所需要的数据.一般情况下分以下三步:1.获取网页的html2.利用正则表达式,获取我们所需要的数据3.分析,使用获取到的数据,(例如,保存到数据库) 接下来我们分析代码:1.获取网页的html 对于一些网页,不需要提交Post提交数据时,我们可以简单的利用NSURL类来获取我们所需要的html,交将其转换中kCFStringEnc