c#写的邮件群发程序

  • 发表时间:2021-08-23 00:03:34
  • 文章来源:网络

实现思路:

将要发送的邮件写入到sql Server中的表(固定的表结构),由此程序周期性地从表中读取要待发邮件并进行发送。 发送邮件的方法在单独的线程中运行。 可配置多个smtp进行发送。

其中涉及的主要技术有:c#中对xml进行操作、数据集设计器的使用;c#中线程的创建、启动及终止;配置文件的使用;.net中邮件发送工具的使用…. 此程序仅用作学习交流。

 下载地址:邮件群发程序

使用方法:

  1、创建一个sqlserver数据表 ,必须命名为:maillist,表结构如下:

Code CREATE TABLE [dbo].[MAILLIST](     [编号] [char](20) COLLATE Chinese_PRC_CI_AS NULL,     [用户类型] [char](6) COLLATE Chinese_PRC_CI_AS NULL,     [用户编号] [char](20) COLLATE Chinese_PRC_CI_AS NULL,     [收件人] [text] COLLATE Chinese_PRC_CI_AS NULL,     [主题] [char](50) COLLATE Chinese_PRC_CI_AS NULL,     [邮件内容] [text] COLLATE Chinese_PRC_CI_AS NULL,     [添加时间] [datetime] NULL,     [发送时间] [datetime] NULL,     [状态] [numeric](11, 0) NULL,     [ID] [int] NULL,     [ID_9DSOFT] [int] IDENTITY(1,1) NOT NULL,     [html] [bit] NULL, PRIMARY KEY CLUSTERED  (     [ID_9DSOFT] ASC ) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

 

      其中:编号、用户类型、用户编号几个字段为可选字段。

      收件人:填写收件人地址,可以填写以分号分隔的多个邮件地址。

     主题:邮件主题

     状态:一定要置为 0,邮件发送程序只找状态为0的记录。

     html:标识邮件是否是html邮件。

邮件内容:邮件主体内容,可以是纯文本,也可以是html内容

2 配置smtp,配置完成后要进行测试,测试通过后程序会将相应的smtp配置的状态设为为1,表示此smtp配置有效。其它的状态说明如下:

     0:表示未测试过。

     1:表示测试通过

  2:表示测试未通过。

    smtp配置信息保存在:程序工作目录datasmtps.xml中

  

3 配置sql连接。

4:在要发送的邮件写入maillist中,在[邮件发送]标签中点击[发送]按钮,开始发送邮件。