.Net魔法堂:发个带附件的邮件

一、前言                          

由于工作需要最近把邮件发送封装成WebService,现在把代码记录在此,以便日后查阅。

二、二话不说写代码                    

 private void _SendMail(string form, string pw, string subject, string[] to, string[] cc, string body, string attachmentName, byte[] attachment)
{
SmtpClient client = new SmtpClient(SMTP服务地址, SMTP服务端口);
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential(form, pw); // 验证信息要与邮件发送源地址一致,否则无法发送
client.DeliveryMethod = SmtpDeliveryMethod.Network; MailMessage message = new MailMessage();
message.From = new MailAddress(form);
foreach (string toItem in to)
{
message.To.Add(toItem);
}
foreach (string ccItem in cc)
{
message.CC.Add(ccItem);
}
message.Subject = subject;
message.SubjectEncoding = Encoding.UTF8;
message.Body = body;
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Priority = MailPriority.High; Stream stream = null;
Attachment data = null;
try
{
if (attachment != null && attachment.Length > )
{
stream = new MemoryStream(attachment);
data = new Attachment(stream, attachmentName, System.Net.Mime.MediaTypeNames.Application.Octet);
message.Attachments.Add(data);
}
client.Send(message);
}
finally
{
if (null != stream)
{
stream.Close();
}
}
}

三、三种发送方式                            

发送邮件有三种方式:

  ①. client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

  直接通过远程SMTP服务器发送邮件

  ②. client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;

  通过本机的IIS服务器的SMTP服务发送邮件(后续在研究什么配置SMTP服务器?)

  ③. client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;

  将邮件发送到本机指定目录中,再通过其他手段(如通过FTP)发送到目的地

四、总结                                

 仅仅是实践后的爪印,没啥好总结的。

 尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/3848355.html ^_^肥仔John

上一篇:System.ServiceModel.CommunicationException: 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。


下一篇:WebService 之 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。