• 设置捕获未处理异常
    //处理未捕获的异常Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);//处理“UI线程”异常Application.ThreadException += application_ThreadException;//处理“非UI线程”异常AppDomain.CurrentDomain.UnhandledException += currentDomain_UnhandledException;//处理“未观察到的异常”TaskScheduler.UnobservedTaskException += taskScheduler_UnobservedTaskException;
  • 邮件发送错误信息(body)
    /// <summary>/// 尹永贤/// 2016-11-24 19:20:18/// yinyongxian@qq.com/// </summary>static class CrashHandler{internal static void SendEmail(string body){try{Send(body);}catch (Exception){//不处理发送失败情况}}private static void Send(string body){#region MailUserconst string host = "smtp.qq.com";const string from = "yinyongxian@qq.com";const string to = "yinyongxian@qq.com";const string password = "***";#endregionvar subject = GenerateSubject();var environmentMessage = GenerateEnvironmentMessage();body = environmentMessage + "<br/>" + body;var mailMessage = new MailMessage(from, to, subject, body){BodyEncoding = Encoding.UTF8,IsBodyHtml = true};var smtpClient = new SmtpClient(host){Credentials = new System.Net.NetworkCredential(from, password),DeliveryMethod = SmtpDeliveryMethod.Network};smtpClient.SendAsync(mailMessage, null);}private static string GenerateEnvironmentMessage(){var productName = Format("软件名称", CrashMessage.ProductName);var productVersion = Format("软件版本", CrashMessage.ProductVersion);var lastWriteTime = Format("编译时间", CrashMessage.LastWriteTime.ToString(CultureInfo.CurrentCulture));var machineName = Format("机器名称", CrashMessage.MachineName);var userName = Format("当前登录用户", CrashMessage.UserName);var osVersionString = Format("系统信息", CrashMessage.OsVersion.ToString());var platformString = Format("系统平台", CrashMessage.Platform.ToString());var processorCount = Format("处理器数量", CrashMessage.ProcessorCount.ToString());var dateTimeNow = Format("发生时间", CrashMessage.DateTimeNow.ToString(CultureInfo.CurrentCulture));const string remarks = "<p>来自蜂巢网管自动发送的电子邮件<p/>";var strings = new[]{productName,productVersion,lastWriteTime,machineName,userName,osVersionString,platformString,processorCount,dateTimeNow,remarks};var environmentMessage = string.Concat(strings);return environmentMessage;}private static string Format(string text, string value){return string.Format("{0}: {1}<br/>", text, value);}private static string GenerateSubject(){return string.Format("{0}-{1}-{2}", CrashMessage.ProductName, CrashMessage.ProductVersion, CrashMessage.DateTimeNow);}}
  • 获取设备基本信息
    /// <summary>/// 尹永贤/// 2016-11-24 19:18:53/// yinyongxian@qq.com/// </summary>public class CrashMessage{/// <summary>/// 软件名称/// </summary>public static string ProductName{get { return Application.ProductName; }}/// <summary>/// 软件版本/// </summary>public static string ProductVersion{get { return Application.ProductVersion; }}/// <summary>/// 软件编译时间/// </summary>public static DateTime LastWriteTime{get{var fileInfo = new FileInfo(Application.ExecutablePath);return fileInfo.LastWriteTime;}}/// <summary>/// 机器名称/// </summary>public static string MachineName{get { return Environment.MachineName; }}/// <summary>/// 当前登录用户/// </summary>public static string UserName{get { return Environment.UserName; }}/// <summary>/// 系统信息/// </summary>public static OperatingSystem OsVersion{get { return Environment.OSVersion; }}/// <summary>/// 系统平台/// </summary>public static PlatformID Platform{get { return OsVersion.Platform; }}/// <summary>/// 处理器数量/// </summary>public static int ProcessorCount{get { return Environment.ProcessorCount; }}/// <summary>/// 当前时间/// </summary>public static DateTime DateTimeNow{get { return DateTime.Now; }}}

邮件发回软件错误信息相关推荐

  1. python向自己qq邮件发信息_python实现自动向QQ邮箱发送天气预报邮件

    今天是清明长假的最后一天了,趁着这点空余的时间想来做点有意思的东西,之前做12306自动购票程序的时候就想加入一个功能,就是抢票成功后实现自动向指定的邮箱里面发送提醒信息的邮件,功能还是很简单的,今天 ...

  2. Qt通讯录(语音输入+发邮件+发短信+头像)

    Qt通讯录(语音输入+发邮件+发短信+头像) 项目背景 功能 运行程序 关键技术 语音识别ASR 发送电子邮件 AddressBook5.0 Gitee地址 项目背景 作为一个Qt小白,迫于大一下学期 ...

  3. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  4. 深度报道 第1个从太空发回的LoRa信号(含视频)

    1 前言 本文作者 IoT小能手 twowinter,转载请联系微信公众号 twowinter. 这是一篇关于全球首个从太空发回LoRa信号的深度报道,你可能已经在一些渠道里得知了这个令人无比兴奋的消 ...

  5. 使用ESP8266信标垃圾邮件发送者来跟踪智能手机用户

    使用ESP8266信标垃圾邮件发送者来跟踪智能手机用户 智能手机和笔记本电脑不断发送Wi-Fi无线电信号,其中许多信号可用于跟踪我们.在本指南中,我们将在Arduino中编写一个廉价的物联网设备,以创 ...

  6. FTP 服务器发回了不可路由的地址。使用服务器地址代替

    最近买了个腾讯云服务器,在服务器上搭建完项目后并创建了FTP. 根据信息登录FTP发现提示:"服务器发回了不可路由的地址.使用服务器地址代替" 问题. 在网上找了一圈发现没有效果, ...

  7. 一分钟弄懂SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  8. php 错误关闭_五种方法教你如何关闭php错误回显信息

    有几种方法可以屏蔽错误回显信息: 1.php.ini的display_errors在php.ini文件中找到display_errors设置项,如果前面有分号,需要删去分号,并将值改为off 2.ph ...

  9. Filezilla 服务器发回了不可路由的地址。使用服务器地址代替

    文章目录 1.现象 2. 解决方法 1.现象 状态: 正在连接 XXXXXXXXXXXXXX- 状态: 连接建立,等待欢迎消息- 响应: 220 Microsoft FTP Service 命令: U ...

  10. james邮件服务器的用户信息添加

    通过我的上一篇博客http://blog.csdn.net/luosheng1125/article/details/9162877我们了解了james邮件服务器的安装,启动和配置,但是要想真正的使用 ...

最新文章

  1. 火狐中H1到H5都有特定margn
  2. 【数学与算法】支持向量机、线性判别 详细数学原理
  3. cross_val_score的使用
  4. VTK:PCA用法实战
  5. 计算机组成要素六:编译器 语法分析器
  6. 错误:在keystone中无法找到默认角色user_第四章 keystone认证组件安装1
  7. iBATIS存储过程
  8. 三种方式实现轮播图功能
  9. 理论小知识:字符串mset命令
  10. word文档打钩记录快捷键
  11. html第三章练习1:音乐排行榜
  12. mysql union 慢_mysql查询慢的原因和解决方案
  13. SpringBoot从入门到精通教程(三十)- 支付宝企业支付集成(五分钟集成)
  14. jmeter监听器---jp@gc - PerfMon Metrics Collector
  15. 904. 水果成篮(数组、滑动窗口)
  16. n! 结果尾数中零的数量
  17. 使用Linkage Mapper制作环境连接图
  18. Cadence Other格式网表导出与导入
  19. C#,图像二值化(17)——全局阈值的ISODATA算法(亦称作InterMeans法)及其源程序
  20. centos 删除文件夹_手机文件夹是英文,占空间还不敢乱删?花一分钟读懂手机语言...

热门文章

  1. 两万字博文教你python爬虫requests库【详解篇】
  2. ubuntu 自带录屏功能
  3. 基础测绘数据分类标准
  4. 【Matlab】曲线拟合
  5. 通过common-emai类库发送普通邮件和带有附件的邮件的完整示例
  6. 数学----向量点积公式推导
  7. 如何给扑克洗牌才能更公平?
  8. Last-Modified和Etag
  9. 各类软件激活码(更新中)
  10. 火灾报警管理系统java,火灾报警系统开题报告