欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用C#代码发送邮件,不完整的demo

程序员文章站 2022-05-05 14:08:30
作为一只入行不久的小菜鸟,最近接触到利用C#代码发送邮件,做了一点小的demo练习。首先,需要配置,这边我做的是QQ邮箱的相关的练习,练习之前,首先应该解决的问题肯定是关于服务器的配置,这边偷一个懒,不做一一的步骤截图,此外文字表述能力也不及于很好的阐述清楚这个东西,附上百度经验的链接吧 https ......

作为一只入行不久的小菜鸟,最近接触到利用c#代码发送邮件,做了一点小的demo练习。首先,需要配置,这边我做的是qq邮箱的相关的练习,练习之前,首先应该解决的问题肯定是关于服务器的配置,这边偷一个懒,不做一一的步骤截图,此外文字表述能力也不及于很好的阐述清楚这个东西,附上百度经验的链接吧 https://jingyan.baidu.com/article/6079ad0eb14aaa28fe86db5a.html。 配置好了之后就开始代码了
第一种方式:

 点击发送按钮执行代码:
   /// <summary>
    /// 发送
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button1_click(object sender, eventargs e)  
    {
        sendm send = new sendm();
        string sendto = sendto.text;  //目标邮箱
        string zt = txtzt.text;   //邮箱主题
        string nr = nr.text;    //邮箱内容
        bool a = checkemail.checktxtemail(sendto);  //检查邮箱地址是否规范
        if (a == true)
        {
           if( send.sendmessage(sendto, zt, nr))  //调用发送
            {
                messagebox.show("发送成功");
                refreshall();
            }
        }
        else
        {
            messagebox.show("邮箱地址错误");
            refreshall();
        }
    }

上面代码的sendmessage函数:
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="mailto"></param>
/// <param name="mailsubject"></param>
/// <param name="mailcontent"></param>
/// <returns></returns>
public bool sendmessage(string mailto,string mailsubject,string mailcontent)
{
    string stmpsever = "smtp.qq.com"; //服务器
    string mailfrom = "**********@qq.com";  //进行qq邮箱相关配置 用于发送邮件的地址
    string mailfrompwd = "**************";  //qq邮箱开启服务 获取的对应授权码

    mailmessage message = new mailmessage();
    message.subject = mailsubject;  //邮件的主题
    message.body = mailcontent;//邮件的内容
    message.bodyencoding = encoding.utf8;
    message.from =new mailaddress(mailfrom); //邮箱的地址
    message.to.add(mailto);   //目标邮箱
    message.priority = mailpriority.normal;
    message.isbodyhtml = true;

    smtpclient client = new smtpclient();
    client.host = stmpsever;
    client.usedefaultcredentials = false;
    client.credentials= new networkcredential(mailfrom, mailfrompwd);
    client.deliverymethod = smtpdeliverymethod.network;
   
    try
    {
        client.send(message);
        return true;
    }
    catch
    {
        return false;
    }

以此实现第一种方式的发送邮件方式,
第二种:利用 system.web.helpers 下面的webmail 类实现发送邮件的方式。
附上代码:

       webmail.smtpserver = "smtp.qq.com";
        webmail.smtpport = 25;
        webmail.enablessl = false;
        webmail.username = "*************@qq.com"; //进行qq邮箱相关配置 用于发送邮件的地址
        webmail.password = "**************";
        webmail.from = "********@qq.com"; // 用于发送邮件的地址 一般情况下与 username 相同
        webmail.send(目标邮箱, 邮件主题, 邮件内容);

即可发送,附上微软的官方文档 https://docs.microsoft.com/en-us/previous-versions/aspnet/gg547987(v%3dvs.111) 以及w3c参考手册 
以上为自己的demo,作为刚入行的菜鸟,以此记录一下自己的小收获,不足之处敬请各位谅解和指正,感谢