sadier

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  50 随笔 :: 274 文章 :: 276 评论 :: 61万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
1。通用部分
using System;
using System.Web.Mail;


namespace BusinessServer.DataServer
{
    
/// <summary>
    
/// Mail 的摘要说明。
    
/// </summary>

    public class EMail
    
{
        
public const  string C_strSenderName =  "******";
        
public const  string C_strsendpassword =  "******";
        
public const  string C_strSmtpServer =  "smtp.***.com";
        
public const  string C_strFrom =  "******@***.com";
        
public EMail()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }



        
public static bool Send(string strTo, string strFrom, string strSubject, string strMessage)
        
{
            
try
            
{
                MailMessage mailObj 
= new MailMessage(); 
  
                
// 设置email的'from'和'to'的地址 
                mailObj.From = C_strFrom; 
                mailObj.To 
= strTo; 
  
                mailObj.Subject 
= strSubject; 
                mailObj.Body 
= strMessage; 

  
                
// 可选: 使用html格式的Email 
                mailObj.BodyFormat = MailFormat.Html; 
  
                
// 可选: 对邮件进行加密 
                
// mailObj.BodyEncoding = MailFormat.Base64; 
  
                
// 可选: 设置邮件的优先级别为高 
                mailObj.Priority = MailPriority.High; 
   
                mailObj.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1");    //basic authentication
                mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",C_strSenderName); //set your username here
                mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", C_strsendpassword);    //set your password here
                
// 使用SmtpMail对象来发送邮件。 
                SmtpMail.SmtpServer = C_strSmtpServer;
                SmtpMail.Send(mailObj);
            }

            
catch(Exception ee)
            
{
                System.Diagnostics.Debug.Write(ee.ToString());
                
return false;
            }


            
return true;
        }

    }

}



2.调用部分
        private bool GetUserNameMenuName(ref string strUsers,ref string strMenuNames)
        
{
            
string strSQLUserName = string.Format("Select UserName FROM TBL_AccessUser Where RoleID = {0}  ",H_RoleID);
            
string strSQLMenu = GetMenuSQL(H_AccessXml);
            
string strSQL = string.Format("{0} ; {1} ",strSQLUserName,strSQLMenu);
            DataSet  ds 
= DataProvider.RunSelect(strSQL);

            
if (ds == null || ds.Tables.Count <= 0 || ds.Tables[0].Rows.Count == 0 )
                
return false;

            
foreach(DataRow dr in ds.Tables[0].Rows)
            
{
                
if(strUsers != "")
                    strUsers 
+= ",";
                strUsers 
+= dr["UserName"].ToString().Trim();
            }


            
int icount = 1;
            
foreach(DataRow dr in  ds.Tables[1].Rows)
            
{
                
string strMenuName = dr["MenuName"].ToString().Trim();
                
if (strMenuName != "")
                
{
                    
if (icount % 5 == 1)
                        strMenuNames 
+= string.Format("<TR><TD>{0}</TD><TD>",strMenuName);  //
                    else if (icount % 5 == 0)
                        strMenuNames 
+= string.Format("{0}</TD></TR>",strMenuName); //
                    else
                        strMenuNames 
+= string.Format("{0}</TD><TD>",strMenuName);  //中间

                    icount 
++;
                }

            }


            
return strUsers.Trim() != "";
        }



        
private string GetMessage()
        
{
            StringBuilder sbEmailMsg 
= new StringBuilder("");
            
string strUser = "";
            
string strMenuNames = "";
            
            
if (GetUserNameMenuName(ref strUser,ref strMenuNames))    
            
{
                sbEmailMsg.Append(
"<TABLE width='600' bgColor='#e0ecff'><caption>");
                sbEmailMsg.Append(
"<caption style='FONT-SIZE: 20pt;COLOR: #f7f7f7; PADDING-TOP: 5px; BACKGROUND-COLOR: #4a3c8c'>权限角色修改记录</caption>");
                sbEmailMsg.Append(
"<TR><TD width='20%'></TD><TD width='20%'></TD><TD width='20%'></TD><TD width='20%'></TD><TD width='20%'></TD></TR>");
                sbEmailMsg.Append(
string.Format("<TR><TD ColSpan=5>{0}的权限有变动,新权限为:</TD></TR>{1}</TABLE>",strUser,strMenuNames));
            }

            
return sbEmailMsg.ToString();
        }



        
private bool DoSendMail()
        
{
            
string strSubject = "角色修改";
            
string strMessage =    GetMessage();

            
return EmailCommonFun.EmailSend(strSubject,strMessage);
        }

posted on   毛小华  阅读(1681)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示