首页 > 其他分享 >自动邮件发送系统_manok_新浪博客

自动邮件发送系统_manok_新浪博客

时间:2022-12-23 12:01:45浏览次数:31  
标签:文件 SMTP 博客 员工 发送 服务器 邮件 manok


     这几天,财务部门有这样一个需求,就是200多个员工的工资,放在一个excel文件中,财务人员要复制每个员工的工资到一个单独文件中,再通过附件的形式发送给员工。我想就做一个邮件自动发送系统,实现自动复制每个员工工资条,再利用附件的形式自动发送给员工,这样满足财务部的需求,提高工作效率。



     我使用了C#中的SmtpClient类实现。处理流程是这样,初始化SMTP服务器。提供一个打开包括所有员工工资的对话框,选择excel文件。打开该文件,读出每一个员工的数据记录,以操作数据库的方式打开;得到员工序号,以员工序号为保存工资条的文件名称。遇到的问题,就是因为有两行字段名称,为嵌套的,而打开数据库的属性,只能指定一行为字段名称。通过做两个空的文件(有两个Sheet表,格式不同),把员工的工资记录读出来,做为一条记录插入到从空的文件复制以序号为文件名称的单独文件中。



    在做的过程中,遇到一个问题就是发送两个邮件之间的延迟时间,SmtpClient提供了两个发送的方法,一个是Sent,另一个是SentAnsyc,这两个方法的区别是前一个是同步的,而后一个方法是异步的。如果使用Sent,则可以一直向Smtp服务器提交邮件,容易造成失败,失去链接。而使用SentAnsyc,则可以检查是否提交到了SMTP服务器。所以我检查返回值,在返回成功时,提示信息发送成功。添加多个异常处理,在失去链接或邮箱不正确时,分别进行相应的异常处理。



   最后,我确定是用后者方法,每个提交发送之间的时间间隔可以设置,默认是2秒,这样200个员工的邮件,在几分钟内就发送完成。还有就是邮件编码的问题,应该设置为gb2312,如果使用系统默认的UTF-8编码,则会出现乱码问题。



   OK,上面只是一些简单的总结。如果把这个软件加以改造,就可以使用多个SMTP服务器,实现向大量客户自动发送Email的系统。



  



 

标签:文件,SMTP,博客,员工,发送,服务器,邮件,manok
From: https://blog.51cto.com/u_12655962/5965321

相关文章