zoukankan      html  css  js  c++  java
  • c# 发送邮箱,企业邮箱测试成功

    今天在项目中需要实现一个发送邮箱的功能,来实现用户邮箱激活功能!!!

    之前采用的是个人的邮箱进行测试,一切都是很顺利的,后来换成了公司的企业邮箱,遇到了一点小问题,问题如下:

    发送邮件失败,原因:命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !

     后来通过百度,找到了原因所在:需要先设置 EnableSsl和UseDefaultCredentials,再实例化Credentials

    发送企业邮箱代码如下:

     1         /// <summary>
     2         /// 发送邮箱
     3         /// </summary>
     4         /// <param name="mail">目的邮件地址</param>
     5         /// <param name="Host">激活地址域名</param>
     6         /// <param name="UserID">用户标识ID</param>
     7         /// <param name="ActiCode">随机生成邮箱激活码</param>
     8         public static void SendEmail(string mail, string Host, int? UserID, string ActiCode)
     9         {
    10             //拼接邮箱激活链接
    11             formto = string.Format(formto, Host, UserID, ActiCode);
    12             MailMessage mailMsg = new MailMessage();
    13             mailMsg.From = new MailAddress(name);//源邮件地址 ,发件人
    14             mailMsg.To.Add(new MailAddress(mail));//目的邮件地址。可以有多个收件人.
    15             mailMsg.Subject = "陈列专家邮箱激活验证";//发送邮件的标题 
    16             mailMsg.Body = "请进行邮箱验证,来激活你在陈列专家中用来接收相关信息的邮箱,点击下面的链接激活您的邮箱:<br><a target='_blank' style='color:#0041D3;text-decoration:underline' href='" + formto + "'>请单击激活</a>";//发送邮件的内容 
    17             mailMsg.IsBodyHtml = true;//是否支持HTML
    18             SmtpClient client = new SmtpClient();//smtp.163.com,smtp.qq.com,smtp.exmail.qq.com(qq企业邮箱smtp)发件人使用的邮箱的SMTP服务器。
    19             client.Host = "smtp.exmail.qq.com";//设置发送者邮箱对应的smtpserver
    20             client.EnableSsl = true;
    21             client.UseDefaultCredentials = false;
    22             client.Credentials = new System.Net.NetworkCredential(name, upass);//指定发件人的邮箱的账号与密码.
    23             client.DeliveryMethod = SmtpDeliveryMethod.Network;
    24             try
    25             {
    26                 client.Send(mailMsg);//排队发送邮件.
    27             }
    28             catch (Exception ex)
    29             {
    30                 throw;
    31             }
    32         }    

    调用方法:SendEmail(email, Host, AdminUser.UserID, code);

    测试效果图如下:

     

     记一次工作中遇到的问题!

  • 相关阅读:
    常见的网络结构
    解决Oracle EM 乱码问题
    Oracle基础
    Unity3D游戏开发初探—2.初步了解3D模型基础
    Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生
    Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
    Linux下的.NET之旅:第一站,CentOS+Mono+Xsp构建最简单的ASP.NET服务器
    Hadoop学习笔记—1.基本介绍与环境配置
    f(n-1) + f(n-2)的编译器处理
    C++ 在线编译器(支持 C++11)
  • 原文地址:https://www.cnblogs.com/liuping666/p/11934512.html
Copyright © 2011-2022 走看看