/// <summary> /// 读取文件并发送邮件的代码 /// </summary> /// <param name="args"></param> static void Main(string[] args) { // EmailName=qq89616537 EmailSmtpServer=smtp.163.com [email protected] EmailPwd=123 EnableSsl=false [email protected];[email protected]; EmailTitle={DateTime.Now}-远程访问服务器 EmailText=远程访问服务器提示 EmailEncoding=gb2312 HtmlFlag=false PwdTextType=des3 EmailTextType=file DirFullName=~/ FileNameExpress=loginip.log ReadFileEncoding=gb2312 EmailTextFileMaxLength=0 FileNameToLower=true Util ut = new Util(); try { ReadFileAndSendEmailConfig ec = ut.Config_Create(args); string theResult = ut.DoOper(ec); if (theResult == null || theResult.Length == 0) { Console.WriteLine("操作成功"); } else { Console.WriteLine(theResult); } } catch (Exception err) { Console.WriteLine(err.Message); } }
/// <summary> /// /// </summary> /// <param name="ec"></param> /// <returns></returns> public string DoOper(ReadFileAndSendEmailConfig ec) { if (ec == null) { return("配置错误:ReadFileAndSendEmailConfig为null"); } string validResult = ec.ValidConfig(); if (validResult != null && validResult.Length > 0) { return(validResult); } // 判断 // bool readFileFlag = IsReadFileOper(ec.EmailTextType.InfoValue); if (!readFileFlag) { string strEmailText = TextConvertTo(ec.EmailText.InfoValue); return(SendEmail(ec, strEmailText)); } string emailText = ToEmailText(ec); return(SendEmail(ec, emailText)); }
/// <summary> /// /// </summary> /// <param name="args"></param> /// <returns></returns> public ReadFileAndSendEmailConfig Config_Create(string[] args) { ReadFileAndSendEmailConfig theResult = new ReadFileAndSendEmailConfig(); List <KeyValueItem> kvList = ArgsToKeyValue(args); if (kvList == null || kvList.Count == 0) { return(theResult); } foreach (KeyValueItem kv in kvList) { if (kv == null) { continue; } theResult.BaseInfoSetValue(kv.ID, kv.TheName, false); } return(theResult); }
/// <summary> /// /// </summary> /// <param name="ec"></param> /// <returns></returns> protected string ToEmailText(ReadFileAndSendEmailConfig ec) { string dirName = ec.DirFullName.InfoValue; if (dirName == null || dirName.Length == 0) { return("[配置异常]:没有指定目录名"); } dirName = dirName.Trim(); if (dirName.Length == 0) { return("[配置异常]:没有指定目录名"); } if (dirName == "~/") { // 如: D:\Projects\eKing.CmdCodeOper\eKing.CmdCodeOper\bin\Debug\ dirName = System.AppDomain.CurrentDomain.BaseDirectory; } DirectoryInfo dirInfo = new DirectoryInfo(dirName); if (!dirInfo.Exists) { return("[配置异常]:" + dirInfo.FullName + "不存在"); } string fileFullName = FindLastFileName(dirInfo, ec.FileNameExpress.InfoValue, ec.FileNameToLower.InfoValue); if (fileFullName == null || fileFullName.Length == 0) { return("[配置异常]:" + dirInfo.FullName + "下没有找到符合条件的文件"); } FileInfo fi = new FileInfo(fileFullName); if (!fi.Exists) { return("[配置异常]:文件:" + fi.FullName + "不存在"); } if (ec.EmailTextFileMaxLength.InfoValue > 0) { if (fi.Length > ec.EmailTextFileMaxLength.InfoValue) { return("文件:" + fi.FullName + "过大,这里仅显示文件名"); } } System.Text.Encoding en = EncodingGet(ec.ReadFileEncoding.InfoValue); try { return(File.ReadAllText(fi.FullName, en)); } catch (Exception err) { return("[读取文件异常]:(文件)" + fi.FullName + "(异常内容)" + err.Message); } }