asp.net mvc发送邮件实例讲解

所属分类: 网络编程 / ASP.NET 阅读数: 1039
收藏 0 赞 0 分享

QQ邮箱 POP3 和 SMTP 服务器地址设置如下:邮箱POP3服务器(端口110)SMTP服务器(端口25)qq.compop.qq.comsmtp.qq.comSMTP服务器需要身份验证。

如果是设置POP3和SMTP的SSL加密方式,则端口如下:

POP3服务器(端口995)

SMTP服务器(端口465或587)。

qq邮箱要注意开启下面的服务:qq会给你个授权码,在下面的代码中详细的讲了在哪用这个授权码。

控制器中代码:

using System.Net.Mail;//邮件发送需引用 
public ActionResult bindStep3(ModelCompany c)
    {
      .........
      ..........
      ...........
      MailAddress MessageFrom = new MailAddress("xxxxx@qq.com"); //发件人邮箱地址 
      string MessageTo = company.COMPANY_EMAIL; //收件人邮箱地址 
      string MessageSubject = "激活验证"; //邮件主题 
      string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href=''>激活</a>"; //邮件内容 (一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。)
 
    if (SendMail(MessageFrom, MessageTo, MessageSubject, MessageBody))
    {
      Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>");
    }
    else
    {
      Response.Write("<script type='text/javascript'>alert('发送邮件失败');</script>");
    }
      TempData["CompanyBind3"] = company;
      return View("bindStep3");
    }

    public bool SendMail(MailAddress MessageFrom,string MessageTo,string MessageSubject,string MessageBody)  //发送验证邮件
    {
      MailMessage message = new MailMessage();
      message.To.Add(MessageTo);
      message.From = MessageFrom;
      message.Subject = MessageSubject;
      message.SubjectEncoding = System.Text.Encoding.UTF8;
      message.Body = MessageBody;
      message.BodyEncoding = System.Text.Encoding.UTF8;
      message.IsBodyHtml = true; //是否为html格式 
      message.Priority = MailPriority.High; //发送邮件的优先等级 
      SmtpClient sc = new SmtpClient();
      sc.EnableSsl = true;//是否SSL加密
      sc.Host = "smtp.qq.com"; //指定发送邮件的服务器地址或IP 
      sc.Port = 587; //指定发送邮件端口 
      sc.Credentials = new System.Net.NetworkCredential("xxxxx@qq.com", "xxxxx"); //指定登录服务器的用户名和密码(注意:这里的密码是开通上面的pop3/smtp服务提供给你的授权密码,不是你的qq密码)

      try
      {
        sc.Send(message); //发送邮件 
      }
      catch(Exception e)
      {
        Response.Write(e.Message);
        return false;
      }
      return true;
      
    }

 实现效果:

 参考文章:

https://www.jb51.net/article/83796.htm

https://www.jb51.net/article/83801.htm

以上就是本文的全部内容,希望对大家学习asp.net mvc发送邮件有所帮助。

更多精彩内容其他人还在看

asp.net 虚方法、抽象方法、接口疑问

asp.net 虚方法、抽象方法、接口疑问等说明。
收藏 0 赞 0 分享

c#  操作符?? null coalescing operator

?? "null coalescing" operator 是c#新提供的一个操作符,这个操作符提供的功能是判断左侧的操作数是否是null,如果是则返回结果是右侧的操作数;非null则返回左侧的操作数。
收藏 0 赞 0 分享

.net 反序题目的详细解答第1/2页

在各种答案,以及平时面试过程中,这道题总归会有一些非常典型的错误发生。其中给老赵的感觉也非常有意思,不知其中的“思路”是否如老赵猜测那样。
收藏 0 赞 0 分享

implicitly convert type 'int' to 'short'的原因与解决方法

implicitly convert type 'int' to 'short'的原因与解决方法
收藏 0 赞 0 分享

比较完整的 asp.net 学习流程

好多朋友想学习后台编程语言,但请注意的事,学习后台是个循序渐进的过程,不可能一下就到位,其实不只是asp.net其它的编程语言都需要下面的一些知识。
收藏 0 赞 0 分享

官网 Ext direct包中.NET版的问题

下载了官网的 Ext direct 包进行研究,发现服务器端返回结果存在一点小问题。
收藏 0 赞 0 分享

C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等),以下就是操作XML的所有方法,相信可以满足很大一部份的使用了。
收藏 0 赞 0 分享

c# 连接字符串数据库服务器端口号 .net状态服务器端口号

正常的数据库连接字符串配置,这是在MSSQL服务器端口是1433(默认)的情况下。
收藏 0 赞 0 分享

ASP.NET 路径问题的解决方法

相对路径和绝对路径在ASP.NET中可以用~/来解决.
收藏 0 赞 0 分享

asp.net TemplateField模板中的Bind方法和Eval方法

在TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现。以下是Bind方法的格式,Eval的格式也是和Bind一样的。 Bind("列的名称","显示的格式文")
收藏 0 赞 0 分享
查看更多