邮件群发

邮件群发工具(C#版)

引言

经常会参与组织一些社区活动,涉及到和不同的人进行交流,微信当然是必须的,同样邮件也是一种不可或缺的方式。

一般群发的邮件不是很友好,如果是一对一的,收到邮件的人是不是会比较重视,而且还有他的名字在里面。

所以抽点时间写了一个工具,使用C#做个发邮件的工具非常简单。

完整代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

class Program

    {

        private static string baseDir = "";

        private static string email = "";

        static void Main(string[] args)

        {

            Console.WriteLine("--- 开始执行 --- ");

            baseDir = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

            email = ConfigurationManager.AppSettings["email"];

            var date = DateTime.Now.ToString("yyyy-MM-dd");

            FileStream fs = new FileStream($"{baseDir}\\[Log]{date}.txt", FileMode.Create);

            StreamWriter sw = new StreamWriter(fs);

            sw.WriteLine("===== 发送日志 =====");

            List<Contact> contacts = GetContacts();

            var smtpClient = GetSmtpClient();

            foreach (var contact in contacts)

            {

                SendMail(smtpClient, contact, sw);

            }

            

            sw.WriteLine("===== 执行完成 =====");

            sw.Flush();

            sw.Close();

            fs.Close();

            Console.WriteLine("--- 执行完成 --- ");

            Console.ReadLine();

        }

        private static SmtpClient GetSmtpClient()

        {

            string server = ConfigurationManager.AppSettings["server"];

            string port = ConfigurationManager.AppSettings["port"];

            string password = ConfigurationManager.AppSettings["password"];

            SmtpClient smtpClient = new SmtpClient();

            smtpClient.Host = server;

            smtpClient.Port = Convert.ToInt32(port);

            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

            smtpClient.EnableSsl = true;

            smtpClient.Credentials = new NetworkCredential(email, password);

            return smtpClient;

        }

        private static void SendMail(SmtpClient smtpClient, Contact contact, StreamWriter sw)

        {

            try

            {

                var mailMessage = GetMailMessage(contact);

                smtpClient.Send(mailMessage);

                Console.WriteLine($" --- 发送成功, Email = {contact.Email} --- ");

                sw.WriteLine($" --- 发送成功, Email = {contact.Email} --- ");

            }

            catch (Exception ex)

            {

                Console.WriteLine($" === 发送失败, Email = {contact.Email} === ");

                sw.WriteLine($" === 发送失败, Email = {contact.Email} === ");

            }

        }

        private static MailMessage GetMailMessage(Contact contact)

        {

            string subject = ConfigurationManager.AppSettings["subject"];

            string introduce = ConfigurationManager.AppSettings["introduce"];

            string link = ConfigurationManager.AppSettings["link"];

            string content = "<p style=\"font - size:16px\">Dear " + contact.Name + " , </p> " +

                                 "<p style=\"font - size:16px\">" + introduce + "</p>"+

                                 "<p style=\"font - size:16px\">报名链接:<a target=\"_blank\" href=\"" + link + "\">"+ link + "</a></p>"

                                 + GetContent();

            MailMessage mailMessage = new MailMessage(email, contact.Email);

            mailMessage.Subject = subject;

            mailMessage.Body = content;

            mailMessage.BodyEncoding = Encoding.UTF8;

            mailMessage.IsBodyHtml = true;

            mailMessage.Priority = MailPriority.Normal;

            return mailMessage;

        }

        private static string GetContent()

        {

            var dir = baseDir + "\\content.txt";

            StreamReader sr = new StreamReader(dir, Encoding.UTF8);

            string content = sr.ReadToEnd();

            sr.Close();

            return content;

        }

        private static List<Contact> GetContacts()

        {

            List<Contact> contacts = new List<Contact>();

            var dir = baseDir + "\\contacts.txt";

            StreamReader sr = new StreamReader(dir, Encoding.UTF8);

            string line;

            while ((line = sr.ReadLine()) != null)

            {

                line = line.Replace(","",");

                var contact = line.Split(new[] {","}, StringSplitOptions.RemoveEmptyEntries);

                if (contact.Length == 2 && !string.IsNullOrEmpty(contact[0]) && !string.IsNullOrEmpty(contact[1]))

                {

                    contacts.Add(new Contact() {Name = contact[0], Email = contact[1]});

                }

            }

            sr.Close();

            return contacts;

        }

        public class Contact

        {

            public string Name { getset; }

            public string Email { getset; }

        }

    }

app.config


1

2

3

4

5

6

7

8

9

<appSettings>

  <add key="server" value="smtp.live.com" />

  <add key="port" value="25" />

  <add key="email" value="***@hotmail.com" />

  <add key="password" value="" />

  <add key="subject" value="敏捷个人北京2016年6月活动:玩转生涯狂想曲" />

  <add key="introduce" value="欢迎参加敏捷个人北京2016年6月活动:玩转生涯狂想曲活动!" />

  <add key="link" value="http://www.hdb.com/party/qz1eu?h_share_uid=f0bv" />

</appSettings>

注意

1)读取app.config的配置信息

2)读取程序根目录下的联系人文件:contacts.txt

--------------------------------

测试1,***@gmail.com
测试2,***@qq.com
测试3,***@163.com

--------------------------------

3)读取程序根目录下的内容文件,包含Html代码:content.txt

发送结果截图

1)控制台输出日志

2)收到邮件内容,dear **

代码下载

下载地址

时间: 2024-10-08 04:23:53

邮件群发的相关文章

C++实现邮件群发的方法

这篇文章主要介绍了C++实现邮件群发的方法,较为详细的分析了邮件发送的原理与C++相关实现技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C++实现邮件群发的方法.分享给大家供大家参考.具体如下:关于生成随机QQ邮箱不精确的问题,在之后版本打算另写一个采集器插件进行帐号采集,所以,这个软件只用来进行内容发送,邮箱进行随机生成 如果你已经有采集来的QQ号,请复制到SendList.txt 替换内容即可可以直接复制HTML代码到邮件内容,保存即可.目前邮件内容最大设置为10000字节,如

爱博邮件群发系统专业版Version 10.5.2Build 429破解版

软件名称:爱博邮件群发系统专业版Version 10.5.2Build 429破解版 (此软件上一个版本小众论坛发布过破解版,大家对这个软件的反响都比较好,但是上一个版本的破解依然是存在问题,发送20封邮件会自动停止.这一次新版的破解已经更新此问题.目前算是比较完美的破解了,小瑕疵是不能批量导入发送帐号)去除了导入20个邮箱限制去除了发送20个邮箱限制去除了官方发送所带尾巴 软件介绍:只要一款软件,企业邮局群发.外贸邮件群发全部搞定! 最新版本的爱博邮件群发系统支持SMTP投递模式,支持企业邮箱

邮件群发工具使用说明&#8203;

邮件群发工具使用说明   1.准备数据.首先用Word建立群发邮件的数据列表,并命名为"数据列表.docx",表格的第一行作为表头,列数根据需要设置.列表内容至少要包含两列,一列存放需要群发的邮箱地址,另一列列存放附件的完整路径,包括附件的名称与后缀.如果你需要添加多个附件,就在附件1之后增加附件2-N.下图为表格示例: Company name Contact Person Email 附件1 附件N Lynnalex Info Co. Mr. LI [email protected

超级邮件群发机12.32完美破解版---日轻松发万封邮件,方法对了每天发不了万封你骂我

前几天发了一个邮件群发工具,很多人回复,被推荐和置顶,感觉很开心,上回第二次发贴就有这么多的朋友支持我,有你们的支持是我奋斗的动力,今后将提供更多更优质的绝对给力小工具给大家,上回发了贴后很多人加我QQ问我怎么用,说真的那个软件非常简单,一看就会用,但有些朋友问我怎么发几封就发的出收不到了,这里我不再多讲,关键是你发的内容是否合法,再好的软件你拼命发重复的内容,肯定容易被和谐,软件显示发送成功,可能你收不到,这也正常,这需要你有更多的发件箱了.还有些人说软件不太强大,邮件内容只能写文字,没有高级

U-Mail邮件群发如何过滤无效地址?

U-Mail邮件群发平台可以自动过滤掉无效和重复地址,过滤效果如下图 U-Mail邮件群发平台会将客户已经确认好是无效地址的加入无效地址库,下次再导入改无效地址就直接拒绝.邮件格式不正确的也会直接过滤掉.其他的就需要先查询邮件Mx记录,和投递邮件时服务器反馈的信息来判断. 实现原理图如下: 如需要使用U-Mail邮件群发平台请咨询我们的客服QQ:4008181568 U-Mail邮件群发如何过滤无效地址?

电商借阿里上市东风 邮件群发提升品牌

阿里巴巴赴美上市,发行价定在68美元,预计将募集资金超两千亿美金.这不仅是中国互联网企业也是世界IT界的大事,国内电商行业因此大受鼓舞,一 些电商借阿里上市之东风,巧妙的开展邮件群发推广活动,在整体改善电商“高大上”形象的同时,也提升了自己的口碑,打响了品牌知名度,最近与U-Mail 邮件群发平台合作的一客户便是. 对于电商来说,应用邮件群发是常见之行为,H客户建立在对消费者购买过程中的心理活动及系列行为基础之上,充分发挥U-Mail邮件群发平台的优势,在这些方面发挥得淋漓尽致: 一.购买前 1

通什翡翠商城大站协议邮件群发系统日发20-30万封不打码不换ip不需发件箱100%进收件箱

用一种新的技术思维去群发邮件 一种不用换IP,不需要任何发件箱的邮件群发方式 一种不需要验证码,不需要**代码变量的邮件群发方式 即使需要验证码也能全自动识别验证码的超级智能软件 教你最核心的邮件群发思维和软件群发技术图片链接不是 问题50%~90%进入收件箱让你不再为进垃圾箱而发愁 每天群发100万封邮件不再是难题 懒人技术升级版大站协议邮件群发 提供的不仅仅是软件更重要的是群发技术 邮件群发神器简介:什么是通什翡翠商城大站协议邮件群发系统? 通什翡翠商城大站协议邮件群发系统,是通过签署邮件群

懒人邮件群发日发50-100万封不打码不换IP不需发件箱大站协议系统营销软件100%进收件箱

用一种新的技术思维去群发邮件 一种不用换IP,不需要任何发件箱的邮件群发方式 一种不需要验证码,不需要**代码变量的邮件群发方式 即使需要验证码也能全自动识别验证码的超级智能软件 教你最核心的邮件群发思维和软件群发技术图片链接不是 问题50%~90%进入收件箱让你不再为进垃圾箱而发愁 每天群发100万封邮件不再是难题 懒人技术升级版大站协议邮件群发 提供的不仅仅是软件更重要的是群发技术 邮件群发神器简介:什么是懒人群发技术大站协议升级版? 懒人群发大站协议升级版,是通过签署邮件群发服务器协议的大

python不同的内容邮件群发

#!/usr/bin/env python #coding:utf8 import smtplib,sys from email.mime.text import MIMEText from config.mailss import mail_list,content def send_mail(): mail_host,mail_user,mail_pass,mail_postfix,sub,me,mailto_list = mail_list me=mail_user+"<"