很着急,急求邮件发送的实例,在网上搜的,测试都不正确求一个正确的例子

解决方案 »

  1.   

    C#Winform邮件发送类
    邮件发送类:
    using System; 
    using System.Data; 
    using System.Configuration; 
    using System.Web; 
    using System.Web.Security;
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.WebControls.WebParts; 
    using System.Web.UI.HtmlControls; 
    using System.Net;
    /// <summary> 
    /// sendmail 的摘要说明 
    /// </summary> 
    namespace donny 

    public struct EmailParms 

    /// <summary> 
    /// 收件人邮箱地址 
    /// </summary> 
    public string ToEmailAddress;
    /// <summary> 
    /// 发件人邮箱地址 
    /// </summary> 
    public string FromEmailAddress;
    /// <summary> 
    /// 发件人邮箱密码 
    /// </summary> 
    public string FromEmailPassword;
    /// <summary> 
    /// 邮件主题 
    /// </summary> 
    public string EmailSubject;
    /// <summary> 
    /// 邮件内容 
    /// </summary> 
    public string EmailBody;
    /// <summary> 
    /// 发件人姓名 
    /// </summary> 
    public string EmailPersonName;
    /// <summary> 
    /// SMTP主机名称 
    /// 例:Gmail为smtp.gmail.com 
    /// </summary> 
    public string EmailHostName;
    /// <summary> 
    /// 邮件优先级:high(高)、low(低)、normal(正常) 
    /// 默认为high 
    /// </summary> 
    public string EmailPriority;
    /// <summary> 
    /// 邮箱端口号 
    /// 例:Gmail为587,一般为25 
    /// </summary> 
    public int EmailPort;
    /// <summary> 
    /// 邮件是否加密:true(加密),false(不加密) 
    /// 默认为true 
    /// </summary> 
    public bool isEnableSsl;
    /// <summary> 
    /// 邮件内容是否为HTML格式(true加密,false不加密),默认为false 
    /// </summary> 
    public bool isBodyHtml;
    /// <summary> 
    /// 邮件编码类型:UTF7、UTF8(推荐)、UTF32、ASCII和Default. 
    /// </summary> 
    public string EncodingType; 

    public class sendmail 

    public sendmail() 

    // 
    // TODO: 在此处添加构造函数逻辑 
    // 

    public static bool SendingEmail(EmailParms Email) 
    { System.Net.Mail.MailMessage mms = new System.Net.Mail.MailMessage();
    System.Text.Encoding emaiEncodingType; 
    //设置邮件编码类型 
    switch (Email.EncodingType) 

    case "UTF7": 
    emaiEncodingType = System.Text.Encoding.UTF7; 
    break; 
    case "UTF8": 
    emaiEncodingType = System.Text.Encoding.UTF8; 
    break; 
    case "UTF32": 
    emaiEncodingType = System.Text.Encoding.UTF32; 
    break; 
    case "ASCII": 
    emaiEncodingType = System.Text.Encoding.ASCII; 
    break; 
    default: 
    emaiEncodingType = System.Text.Encoding.Default; 
    break; 
    }
    mms.To.Add(Email.ToEmailAddress); 
    mms.From = new System.Net.Mail.MailAddress(Email.FromEmailAddress, Email.EmailPersonName, emaiEncodingType); 
    mms.Subject = Email.EmailSubject; 
    mms.SubjectEncoding = emaiEncodingType; 
    mms.Body = Email.EmailBody; 
    mms.BodyEncoding = emaiEncodingType;
    //设置邮件是否为HTML格式 
    if (Email.isBodyHtml == false) 

    mms.IsBodyHtml = Email.isBodyHtml; 

    else 

    mms.IsBodyHtml = true; 
    }
    //设置邮件优级先级 
    switch (Email.EmailPriority) 

    case "normal": 
    mms.Priority = System.Net.Mail.MailPriority.Normal; 
    break; 
    case "low": 
    mms.Priority = System.Net.Mail.MailPriority.Low; 
    break; 
    default: 
    mms.Priority = System.Net.Mail.MailPriority.High; 
    break; 
    }
    System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); 
    client.Credentials = new System.Net.NetworkCredential(Email.FromEmailAddress, Email.FromEmailPassword);
    client.Port = Email.EmailPort; 
    client.Host = Email.EmailHostName; 
    client.EnableSsl = Email.isEnableSsl;
    try 

    client.Send(mms); 
    return true; 

    catch (Exception ex) 

    return false; 



    }
    使用方法:EmailParms mailstr = new EmailParms(); 
    mailstr.EmailBody = "aaaa"; 
    mailstr.EmailHostName = "smtp.XXXX.com"; 
    mailstr.EmailPersonName = "admin"; 
    mailstr.EmailPort = 25; 
    mailstr.EmailPriority = "high"; 
    mailstr.EmailSubject = "主题"; 
    mailstr.EncodingType = "UTF8"; 
    mailstr.FromEmailAddress = "[email protected]"; 
    mailstr.FromEmailPassword = "1111111"; 
    mailstr.isBodyHtml = false; 
    mailstr.isEnableSsl = false; 
    mailstr.ToEmailAddress = "[email protected]"; 
    sendmail.SendingEmail(mailstr);
    使用时候注意:
    有时候防火墙会拦截邮件。需要在防火墙里设置端口开放,用那个就开发那个。不要频繁大范围的发送邮件,负责机房很快就会把你服务器的相关端口给封闭的。
    写个读邮件的给你看看,至于读数量,研究下就出来了
    protected void ReadEmail_Click(object sender, EventArgs e) 
    {try{TcpClient tcpclient = new TcpClient(); // create an instance of TcpClienttcpclient.Connect("pop.gmail.com", 995); // HOST NAME POP SERVER and gmail uses port number 995 for POP System.Net.Security.SslStream sslstream = new SslStream(tcpclient.GetStream()); // This is Secure Stream // opened the connection between client and POP Serversslstream.AuthenticateAsClient("pop.gmail.com"); // authenticate as client //bool flag = sslstream.IsAuthenticated; // check flag System.IO.StreamWriter sw = new StreamWriter(sslstream); // Asssigned the writer to streamSystem.IO.StreamReader reader = new StreamReader(sslstream); // Assigned reader to streamsw.WriteLine("USER [email protected]"); // refer POP rfc command, there very few around 6-9 commandsw.Flush(); // sent to serversw.WriteLine("PASS your_gmail_password"); 
    sw.Flush();sw.WriteLine("RETR 1"); // this will retrive your first email sw.Flush();sw.WriteLine("Quit "); // close the connectionsw.Flush();string str = string.Empty; 
    string strTemp = string.Empty;while ((strTemp = reader.ReadLine()) != null) 
    {if (strTemp == ".") // find the . character in line{break; 
    }if (strTemp.IndexOf("-ERR") != -1) 
    {break; 
    }str += strTemp;}Response.Write(str);Response.Write("<BR>" + "Congratulation.. ....!!! You read your first gmail email "); 
    }catch (Exception ex) 
    {Response.Write(ex.Message);}}