C#发送邮件及附件


C#发送邮件的功能在网上找了很多也有利用socket的 ,试了一下不行的原因是smtp服务器的问题。在这里我用了mailmessage和搜狐的stmp.sohu.com。源码如下:

 

    protected void Button1_Click(object sender, EventArgs e)
    {

        string from = ******@sohu.com;
        string fromer = "发件人";
        string to = "*****@126.com";
        string toer = "收件人";
        string Subject = "邮件标题";
        string file="附件地址";
        string Body ="发送内容";
        string SMTPHost = "smtp.sohu.com";
        string SMTPuser = "******@sohu.com";
        string SMTPpass = "*******";
        sendmail(from, fromer, to, toer, Subject, Body,file,SMTPHost, SMTPuser, SMTPpass);
    }

 

 

 

 

    /// <summary>
    /// C#发送邮件函数
    /// </summary>
    /// <param name="from">发送者邮箱</param>
    /// <param name="fromer">发送人</param>
    /// <param name="to">接受者邮箱</param>
    /// <param name="toer">收件人</param>
    /// <param name="Subject">主题</param>
    /// <param name="Body">内容</param>
    /// <param name="file">附件</param>
    /// <param name="SMTPHost">smtp服务器</param>
    /// <param name="SMTPuser">邮箱</param>
    /// <param name="SMTPpass">密码</param>

    /// <returns></returns>
    public bool sendmail(string sfrom, string sfromer, string sto, string stoer, string sSubject, string sBody, string sfile, string sSMTPHost, string sSMTPuser, string sSMTPpass)
    {
        ////设置from和to地址
        MailAddress from = new MailAddress(sfrom, sfromer);
        MailAddress to = new MailAddress(sto, stoer);

        ////创建一个MailMessage对象
        MailMessage oMail = new MailMessage(from, to);

        //// 添加附件
        if (sfile != "")
        {
            oMail.Attachments.Add(new Attachment(sfile));
        }

 

        ////邮件标题
        oMail.Subject = sSubject;


        ////邮件内容
        oMail.Body = sBody;

        ////邮件格式
        oMail.IsBodyHtml = false;

        ////邮件采用的编码
        oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");

        ////设置邮件的优先级为高
        oMail.Priority = MailPriority.High;

        ////发送邮件
        SmtpClient client = new SmtpClient();
        ////client.UseDefaultCredentials = false; 
        client.Host = sSMTPHost;
        client.Credentials = new NetworkCredential(sSMTPuser, sSMTPpass);
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        try
        {
            client.Send(oMail);
            return true;
        }
        catch (Exception err)
        {
            Response.Write(err.Message.ToString());
            return false;
        }
        finally
        {
            ////释放资源
            oMail.Dispose();
        }

    }

你可能感兴趣的:(C#发送邮件及附件)