邮件发回软件错误信息
- 设置捕获未处理异常
//处理未捕获的异常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; }}}
邮件发回软件错误信息相关推荐
- python向自己qq邮件发信息_python实现自动向QQ邮箱发送天气预报邮件
今天是清明长假的最后一天了,趁着这点空余的时间想来做点有意思的东西,之前做12306自动购票程序的时候就想加入一个功能,就是抢票成功后实现自动向指定的邮箱里面发送提醒信息的邮件,功能还是很简单的,今天 ...
- Qt通讯录(语音输入+发邮件+发短信+头像)
Qt通讯录(语音输入+发邮件+发短信+头像) 项目背景 功能 运行程序 关键技术 语音识别ASR 发送电子邮件 AddressBook5.0 Gitee地址 项目背景 作为一个Qt小白,迫于大一下学期 ...
- 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人
明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...
- 深度报道 第1个从太空发回的LoRa信号(含视频)
1 前言 本文作者 IoT小能手 twowinter,转载请联系微信公众号 twowinter. 这是一篇关于全球首个从太空发回LoRa信号的深度报道,你可能已经在一些渠道里得知了这个令人无比兴奋的消 ...
- 使用ESP8266信标垃圾邮件发送者来跟踪智能手机用户
使用ESP8266信标垃圾邮件发送者来跟踪智能手机用户 智能手机和笔记本电脑不断发送Wi-Fi无线电信号,其中许多信号可用于跟踪我们.在本指南中,我们将在Arduino中编写一个廉价的物联网设备,以创 ...
- FTP 服务器发回了不可路由的地址。使用服务器地址代替
最近买了个腾讯云服务器,在服务器上搭建完项目后并创建了FTP. 根据信息登录FTP发现提示:"服务器发回了不可路由的地址.使用服务器地址代替" 问题. 在网上找了一圈发现没有效果, ...
- 一分钟弄懂SpringBoot 动态设置邮件发送人
明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...
- php 错误关闭_五种方法教你如何关闭php错误回显信息
有几种方法可以屏蔽错误回显信息: 1.php.ini的display_errors在php.ini文件中找到display_errors设置项,如果前面有分号,需要删去分号,并将值改为off 2.ph ...
- Filezilla 服务器发回了不可路由的地址。使用服务器地址代替
文章目录 1.现象 2. 解决方法 1.现象 状态: 正在连接 XXXXXXXXXXXXXX- 状态: 连接建立,等待欢迎消息- 响应: 220 Microsoft FTP Service 命令: U ...
- james邮件服务器的用户信息添加
通过我的上一篇博客http://blog.csdn.net/luosheng1125/article/details/9162877我们了解了james邮件服务器的安装,启动和配置,但是要想真正的使用 ...
最新文章
- 火狐中H1到H5都有特定margn
- 【数学与算法】支持向量机、线性判别 详细数学原理
- cross_val_score的使用
- VTK:PCA用法实战
- 计算机组成要素六:编译器 语法分析器
- 错误:在keystone中无法找到默认角色user_第四章 keystone认证组件安装1
- iBATIS存储过程
- 三种方式实现轮播图功能
- 理论小知识:字符串mset命令
- word文档打钩记录快捷键
- html第三章练习1:音乐排行榜
- mysql union 慢_mysql查询慢的原因和解决方案
- SpringBoot从入门到精通教程(三十)- 支付宝企业支付集成(五分钟集成)
- jmeter监听器---jp@gc - PerfMon Metrics Collector
- 904. 水果成篮(数组、滑动窗口)
- n! 结果尾数中零的数量
- 使用Linkage Mapper制作环境连接图
- Cadence Other格式网表导出与导入
- C#,图像二值化(17)——全局阈值的ISODATA算法(亦称作InterMeans法)及其源程序
- centos 删除文件夹_手机文件夹是英文,占空间还不敢乱删?花一分钟读懂手机语言...