子风.NET 进阶中......

路途多艱,唯勤是岸

 

.net 发送Email

using System.Net.Mail;
using System.Net;

发送EMail 是在这上面的命名空间下的。

见代码。最好是用异步发送,SmtpClient这个有个事件,可以表明是否发送成功。

 

代码
    /// <summary>
        
/// 发送Email
        
/// </summary>
        
/// <param name="toMailAddress">收件人地址</param>
        
/// <param name="isBCC">是否密件抄送</param>
        
/// <param name="ccEmails">抄送的地址集合</param>
        
/// <param name="subject">邮件的标题</param>
        
/// <param name="body">正文</param>
        
/// <param name="sendMailAddress">发送邮件的地址</param>
        
/// <param name="senMailPwd">发送邮件的密码</param>
        
/// <param name="port">端口号</param>
        
/// <param name="host">smtp事务机的主机或者IP地址</param>
        
/// <param name="attachments">附件的地址集合</param>
        
/// <returns>TRUE/FALSE</returns>
        public bool SendMail(string toMailAddress, bool isBCC,
                              
string[] ccEmails, string subject,
                              
string body, string sendMailAddress,
                              
string senMailPwd, int port, string host,
                              List
<string> attachments,string sendName)
        {
            MailMessage msg 
= new MailMessage();
            msg.To.Add(toMailAddress);

            
if (ccEmails != null)
            {
                
foreach (string email in ccEmails)
                {
                    
if (isBCC)
                    {
                        msg.Bcc.Add(email);
                    }
                    
else
                    {
                        msg.CC.Add(email);
                    }
                }
            }

            msg.From 
= new MailAddress(sendMailAddress, sendName, Encoding.UTF8);
            msg.Subject 
= subject;
            msg.SubjectEncoding 
= Encoding.UTF8;

            msg.Body 
= body;
            msg.BodyEncoding 
= Encoding.UTF8;

            msg.IsBodyHtml 
= false;
            msg.Priority 
= MailPriority.High;

            
if (attachments != null)
            {
                
foreach (string attachment in attachments)
                {
                    msg.Attachments.Add(
new Attachment(attachment));
                }
            }

            SmtpClient client 
= new SmtpClient();
            client.Credentials 
= new NetworkCredential(sendMailAddress, senMailPwd);
            client.Port 
= port < 0 ? 25 : port;
            client.Host 
= host;
            
//client.Host = "124.207.241.165";
            if (port == 587)
            {
                client.EnableSsl 
= true;
            }
            
try
            {
                client.SendAsync(msg, msg);
                
return true;
            }
            
catch (Exception ex)
            {
                
return false;
            }
        }

 

 

posted on 2010-02-09 10:40  子风  阅读(306)  评论(0编辑  收藏  举报

导航