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();
        }

    }

 

 

posted @   Xingsoft  阅读(17032)  评论(7编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示