邮箱 万维网通讯 smtp

废话不多说 人很忙

结果参考

http://www.ucsmy.net/RegistrationManage/RegistrationInfo.aspx

需要掌握 web.config的配置及调用

需要了解Smtp相关知识 比较麻烦

需要了解Encoding加密

了解 StringBuilder

html UI 美工

这里的发送邮箱用QQ

web.config配置 

<appSettings>节点下 增加 

 <!--发送邮件-->
  <add key="email-Address" value="957801754@qq.com" />  

<!--这个用的是QQ的 独立密码(PS不是QQ登入密码哟) 1找到QQ邮箱的设置 2找到帐户 点进去 找到下面的 的

POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启服务:
已开启 |  关闭
-->
  <add key="email-psd" value="cao919" />  

<!--QQ的发送服务器是用的这个 你们公司用的可能会换 smtp.qq.com-->

  <add key="email-host" value="smtp.qq.com" />         

  <!--WebRoot  这个以后换成你们公司域名 -->
  <add key="webRoot" value="http://localhost:8888/" />



二  当你数据新增成功后 发送

<pre name="code" class="csharp">if (IsAdd) //数据新增成功
                {
<pre name="code" class="csharp">//<span style="font-family: Arial, Helvetica, sans-serif;">user</span>
string webRoot = System.Configuration.ConfigurationManager.AppSettings["webRoot"].ToString(); StringBuilder urlsb = new StringBuilder(); string url = "http://mail." + user.Email.Split('@')[1]; urlsb.Append("<div style=' margin:50px auto; background:#e5f5fc;border-radius: 5px 5px 5px 5px;width:698px;height:100%;font-size:12px; color:#000; overflow:hidden;'><img src='https://usercenter.yihaojiaju.com/Images-2.0/common/newlogo-new.png'/><p style='padding:10px 50px 0 50px; line-height:30px;'> ").Append(" <span style='color:#f01c1c;'> 您好!感谢您使用**系统。</span>").Append("<br/> ").Append("您的注册帐号为:<span style='color:#f01c1c;'>").Append(
user
.StaffID).Append("</span>您的密码为:<span style='color:#f01c1c;'>" +
user
.Pwd + " 注册成功后请修改密码!</span>").Append("<br/><span style='color:#f01c1c;'>激活邮箱帐号后可以使用跟多功能。</span><br/> ").Append("<a style='color:#258DCC; font-size:11pt;' ").Append("href='" + webRoot + "Sys/Staff/StaffEmailSuccess.aspx?id=").Append(SerializerHelper.Encrypt(
user
.StaffID.ToString())).Append("&LoginUser=").Append(SerializerHelper.Encrypt(
user
.Name)).Append("").Append("").Append("'>").Append(" ").Append("点击此处").Append("</a>").Append("立即激活您的帐号(该链接在12小时内有效)<br/> <a style='color:#3E83D1;' ").Append("href='" + webRoot + "Sys/Staff/StaffEmailSuccess.aspx?id=").Append(SerializerHelper.Encrypt(
user
.StaffID.ToString())).Append("&LoginUser=").Append(SerializerHelper.Encrypt(
user
.Name)).Append("").Append("").Append("'>").Append(webRoot + "Sys/Staff/StaffEmailSuccess.aspx?id=").Append(SerializerHelper.Encrypt(
user
.StaffID.ToString())).Append("&LoginUser=").Append(SerializerHelper.Encrypt(
user
.Name)).Append("</a><br/>").Append("<--如果您不能点击此链接,请将以上链接复制到浏览器地址栏中访问--><br/>").Append("此信是由一号家居MS系统发出,系统不接收回信,请勿直接回复。如有任何疑问请联系我们。 ").Append("<br/> <span style='font-weight:bold;font-size:12px;'>感谢使用我们的服务</span> <br/>").Append("** <br/>全国服务热线:4000-000-00 <br/> ").Append(" </p> <div style='height:39px; background:#099be6; color:#fff; font-size:16px; text-align:center; line-height:39px;'>cao919/div>").Append("</div>");

 
//调用下面的方法
                    bool sendEmail = BaseComm.Email_Send(<pre name="code" class="csharp">user
.Email, "请激活【***系统】", urlsb.ToString()); string Message = "<script language=javascript>"; Message += "if(confirm(\"已成功录入人员!继续录入吗?\")){"; Message += " window.location.href=\"userAdd.aspx?"; Message += "}else{parent.location.reload();}"; Message += "</script>"; Response.Write(Message); }
 
 


第二步所需的帮助类

 BaseComm类

<pre name="code" class="csharp">/// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="MessageTo"></param>
        /// <param name="MessageSubject"></param>
        /// <param name="MessageBody"></param>
        /// <returns></returns>
        public static bool Email_Send(string MessageTo, string MessageSubject, string MessageBody)
        {
            Regex r = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
            if (!r.IsMatch(MessageTo))
                return false;
            if (string.IsNullOrEmpty(MessageTo))
                return false;
            MailMessage message = new MailMessage();
            string fromAddress = ConfigurationManager.AppSettings["email-Address"];
            string psd = ConfigurationManager.AppSettings["email-psd"];
            message.From = new MailAddress(fromAddress, "MS系统");
            try
            {
                message.To.Add(MessageTo); //收件人邮箱地址可以是多个以实现群发  
            }
            catch
            {
                return false;
            }
            message.Subject = MessageSubject;
            message.Body = MessageBody;
            message.IsBodyHtml = true; //是否为html格式  
            message.Priority = MailPriority.High; //发送邮件的优先等级  
            SmtpClient sc = new SmtpClient();
            sc.Host = ConfigurationManager.AppSettings["email-Host"]; //指定发送邮件的服务器地址或IP  
            sc.Port = 25; //指定发送邮件端口  
            sc.Credentials = new System.Net.NetworkCredential(fromAddress, psd); //指定登录服务器的用户名和密码(发件人的邮箱登陆密码)
            try
            {
                sc.Send(message); //发送邮件  
            }
            catch (Exception ex)
            {
              //  LogHelper(new Guid().ToString(), 1);
                return false;
            }
            return true;

        }


 

三  加密解密的帮助方法

SerializerHelper类

 /// <summary>
    /// 加密Token
    /// </summary>
    /// <param name="token">明文Token</param>
    /// <returns>加密的Token</returns>
    public static string Encrypt(string content)
    {
        if (string.IsNullOrEmpty(content))
        {
            return string.Empty;
        }
        Byte[] bytes = Encoding.UTF8.GetBytes(content);
        //把8位字节数组转换成Base64字符串  
        return Convert.ToBase64String(bytes);
    }
    /// <summary>
    /// 解密Token
    /// </summary>
    /// <param name="token">密文Token</param>
    /// <returns>解密的Token</returns>
    public static string Decrypt(string content)
    {
        if (string.IsNullOrEmpty(content))
        {
            return string.Empty;
        }
        byte[] tokenByte = Convert.FromBase64String(content);
        //把Base64字符串转换成8位字节数组
        return Encoding.UTF8.GetString(tokenByte);
    }


posted @ 2015-07-13 01:52  cao919  阅读(64)  评论(0编辑  收藏  举报