[翻译]开源发送邮件组件dotnetopenmail使用介绍
在mojoportal项目中发邮件使用的是dotnetopenmail介绍
发邮件是非常简单的,不管用System.web.mail [ASP.NET 1.1]或System.Net.mail [ASP.NET 2.0],但是还是有其他第三方组件可以被使用,比如DotNetOpenMail.他可以使你用最少的代码创建文本,html和带附件的邮件通过 smtp服务器发送.
你可以从这个网址得到组件:http://dotnetopenmail.sourceforge.net/
使用组件发送邮件
只要将DotNetOpenMail.dll引用到项目,并且写下下面的代码
using DotNetOpenMail;
using DotNetOpenMail.Logging;
using DotNetOpenMail.Encoding;
using DotNetOpenMail.Resources;
using DotNetOpenMail.SmtpAuth;
/* 创建一个邮件对象 */
EmailMessage emailMessage = new EmailMessage();
/* 添加发件人的邮箱地址 */
emailMessage.FromAddress = new EmailAddress( " senderID@domainName.com " );
/* 添加收件人的邮箱地址 */
emailMessage.AddToAddress( new EmailAddress( " receiverID@domainName.com " ));
/* 添加邮件主题 */
emailMessage.Subject = " Subject of the Message "
/* 设置邮件内容通过html附件 */
emailMessage.HtmlPart = new HtmlAttachment( " <html><body><p>Write Down some BODY-Text here</p></body></html> " );
/* 初始化smtp服务器 */
SmtpServer smtpServer = new SmtpServer( " smtpout.domainName.com " );
/* 提供smtp服务器上有效的用户名和密码 */
smtpServer.SmtpAuthToken = new SmtpAuthToken( " webmaster@domainName.com " , " password " );
/* 设置内容类型 */
emailMessage.ContentType = " TEXT/HTML "
/* 发送邮件 */
emailMessage.Send(smtpServer);
Response.Write ( " Email Successfully Sent " );
为邮件添加附件
/* 创建一个MemoryStream对象 */
MemoryStream memStream = new MemoryStream();
/* 创建一个StreamWriter 对象 */
StreamWriter writer = new StreamWriter(memStream);
/* 在StreamWriter对象中写入一些内容 */
writer.WriteLine( " HELLO WORLD ! " );
writer.Flush();
/* 让memory stream指回文件的开始 */
memStream.Seek( 0 , SeekOrigin.Begin);
/* 创建一个文件附件且将memory stream中的内容添加进来 */
FileAttachment attachment = new FileAttachment( new StreamReader(memStream));
/* 为文件附件设置名称,内容类型和字符集参数 */
attachment.FileName = " Hello.txt "
attachment.CharSet = System.Text.Encoding.ASCII;
attachment.ContentType = " text/plain "
/* 将附件加入邮件中 */
emailMessage.AddMixedAttachment(attachment);