C# 实现在线发送电子邮件

来源:互联网 发布:java找工作用什么软件 编辑:程序博客网 时间:2024/06/07 14:51

using System.Net.Mail;     //要引用的命名空间

 

//address: 收件人地址

//content: 邮件内容

//subjecct;  主题

 

 public bool SendMail(string address, string content, string subject)
    {
        MailMessage onemail = new MailMessage();
        string myEmail = "xxx@xx.com//发送邮件的邮箱地址
        string myPwd = "xxx";  //发送邮件的邮箱密码
        onemail.BodyEncoding = System.Text.Encoding.UTF8;   //发送邮件文件的编码
        onemail.IsBodyHtml = true;
        onemail.From = new MailAddress(myEmail);
        onemail.To.Add(new MailAddress(address));
        onemail.Subject = subject;
        onemail.Body = content;
        onemail.BodyEncoding = System.Text.Encoding.UTF8;
        SmtpClient clint = new SmtpClient("xxx");//发送邮件的服务器,如果是gamil 就是:smtp.gmail.com
        clint.UseDefaultCredentials = false;
        clint.Port =xxx;  //端口号,是gmail就是:587
        clint.Credentials = new System.Net.NetworkCredential(myEmail, myPwd);
        clint.DeliveryMethod = SmtpDeliveryMethod.Network;
        clint.EnableSsl = true;
        clint.Timeout = 15000;

        try
        {
            clint.Send(onemail);
            return true;
        }
        catch (Exception ex)
        {
          //  string rel = ex.Message;
          //  Response.Write(rel+"<br/>");
            return false;
        }
    }

我用的是gmail邮箱来实现的。

在实现的时候,开始报的是SMTP 服务器要求身份验证,这需要你到你的gamil中设置一下,在转发POP/IMAP项中设置启用IMAP 、POP

向163、126 SMTP用的是25端口,而gamil用的是465或587 。但是我用465时,总是超时,改成587就好了。