现在做的项目需要用到邮件的接发,写的用.net通过POP3收邮件的程序一直没有问题,但是通过SMTP发邮件的程序一直无法成功,今天才知道原来.net自带的发送邮件的库是如此的垃圾。不管是System.Web.Mai还是原来老的System.Net.Mail里面的库,在发送邮件给Tom.com的时候都会被服务器当作垃圾邮件发送程序给屏蔽掉。不仅如此,在公司电脑上运行的时候甚至会被Mcafee当成邮件蠕虫病毒给屏蔽掉。
以前需要用到发邮件提醒的公司项目都是在Sharepoint下运行的,而现在这个项目决定绕开Sharepoint,直接做成B/S系统,因此邮件发送就不能用Sharepoint下面带的那套的东西。今天上网找了个.net下的开源的软件“OpenSMTP”,没有使用.net自带的System.Web.Mail库,可以通过Tom.com的SMTP服务器来发送邮件了,待明天回公司再试验下会被会被Mcafee或者公司服务器屏蔽掉。
将OpenSmtp.dll的引用加入到项目中就可以使用OpenSmtp的库了,一下是一个简单的使用OpenSmtp发送邮件的程序:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using OpenSmtp.Mail;
- namespace sendmail
- {
- class Program
- {
- static void Main(string[] args)
- {
- try
- {
- string smtpHost = "smtp.tom.com";
- int smtpPort = 25;
- string senderEmail = "username@tom.com";
- string recipientEmail = "username@tom.com";
- string subject = "Subject";
- string body = "Body";
- MailMessage msg = new MailMessage(senderEmail, recipientEmail);
- msg.Subject = subject;
- msg.Body = body;
- Smtp smtp = new Smtp(smtpHost, smtpPort);
- smtp.Username = "username";
- smtp.Password = "password";
- smtp.SendMail(msg);
- Console.WriteLine("发送成功");
- Console.ReadLine();
- }
- catch (Exception e)
- {
- Console.WriteLine(e.StackTrace);
- Console.ReadLine();
- }
- }
- }
- }