当前位置:网站首页>【博主推荐】C# Winform定时发送邮箱(附源码)
【博主推荐】C# Winform定时发送邮箱(附源码)
2022-07-06 09:13:00 【xcLeigh】
【博主推荐】C# Winform定时发送邮箱(附源码)
C# WinForm+Oracle+Email
1.支持对oracle数据定时查询,然后把查询结果发送邮箱;
2.灵活可配置,日志目录,数据库相关连接,展示的字段,展示的格式,发送的邮箱,表格的风格等;
3.可以在此基础上,支持扩展,定时查询数据(任何数据库),发送邮箱(短信);
窗体风格

1.支持最小化,关闭隐藏任务栏;
2.邮箱和数据库配置好了,开始线程,执行任务;
3.输出每次处理数据日志
- 窗体最小化

窗体代码
public ToDataEmail()
{
InitializeComponent();
//默认窗体最大化
//this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
SysFinalUtil.appLog = txtSysLog.Text + "log";
SysFinalUtil.appLog2 = txtSysLog.Text;
this.txtMess.Text = WriteFileUtil.ReadTxt();
}
#region 线程开始结束
private void btnStart_Click(object sender, EventArgs e)
{
//短信接收线程
WriteFileUtil.WriteFileLog("---------------------进入定时查询数据发送邮箱", "log");
EmailData sh = new EmailData();
EmailData.SysEmailName = txtSysEmailName.Text;
EmailData.SysEmailPass = txtSysEmailPass.Text;
EmailData.UserEmailName = txtUserEmailName.Text;
EmailData.SysEmailTitle = txtSysEmailTitle.Text;
EmailData.SysExecuteTime = int.Parse(txtSysExecuteTime.Text);
DBHelper.OracleDBHelper.linkConn = this.txtOracleLjc.Text;
EmailData.OracleSql = txtOracleSql.Text;
EmailData.OracleField = txtOracleField.Text;
EmailData.OracleFieldDetail = txtOracleFieldDetail.Text;
SysFinalUtil.appLog = txtSysLog.Text+"log";
SysFinalUtil.appLog2 = txtSysLog.Text;
string color = "1";
string style = "1";
if (rbColor1.Checked) { color = "1"; }
else if (rbColor2.Checked) { color = "2"; }
else if (rbColor3.Checked) { color = "3"; }
if (rbStyle1.Checked) { style = "1"; }
else if (rbStyle2.Checked) { style = "2"; }
EmailData.SysColor = color;
EmailData.SysStyle = style;
glo2.GlobalValue2.Email_RecvHandle = new Thread(sh.Rev_RunEmail);
glo2.GlobalValue2.Email_RecvHandle.Start();
this.btnClose.Enabled = true;
this.btnStart.Enabled = false;
}
private void btnClose_Click(object sender, EventArgs e)
{
glo2.GlobalValue2.Email_RecvHandle.Abort();
this.btnStart.Enabled = true;
this.btnClose.Enabled = false;
WriteFileUtil.WriteFileLog("---------------------关闭数据线程", "log");
}
#endregion
private void ToDataEmail_Load(object sender, EventArgs e)
{
if (glo2.GlobalValue2.Email_RecvHandle == null)
{
this.btnStart.Enabled = true;
this.btnClose.Enabled = false;
}
else
{
this.btnClose.Enabled = true;
this.btnStart.Enabled = false;
}
}
private void ToDataEmail_FormClosed(object sender, FormClosedEventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.Hide();
return;
}
private void ToDataEmail_FormClosing(object sender, FormClosingEventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.Hide();
e.Cancel = true;
return;
}
private void nfiLow_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.Show();
//this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
}
private void tsmixcSharp_Click(object sender, EventArgs e)
{
Process.Start("https://blog.csdn.net/weixin_43151418");
}
private void tsmiShow_Click(object sender, EventArgs e)
{
this.Show();
//this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
}
private void tsmiVis_Click(object sender, EventArgs e)
{
this.Hide();
}
private void tsmiExit_Click(object sender, EventArgs e)
{
//WriteFileUtil.WriteFileLog("---------------------退出程序", "log");
nfiLow.Visible = false;
System.Environment.Exit(0);//所有线程退出
this.Close();
this.Dispose();
System.Windows.Forms.Application.Exit();
}
private void timer1_Tick(object sender, EventArgs e)
{
this.txtMess.Text = WriteFileUtil.ReadTxt();
}
private void tsmiTxtLoad_Click(object sender, EventArgs e)
{
this.txtMess.Text = WriteFileUtil.ReadTxt();
}
private void tsmiTxtClear_Click(object sender, EventArgs e)
{
if (WriteFileUtil.clearTxt())
{
//MessageBox.Show("清空完毕!");
this.txtMess.Text = WriteFileUtil.ReadTxt();
}
else
{
MessageBox.Show("清空异常!");
this.txtMess.Text = WriteFileUtil.ReadTxt();
}
}
运行文件

双击XcSharpApp.exe运行
源码地址
边栏推荐
- MySQL18-MySQL8其它新特性
- CSDN Q & a tag skill tree (V) -- cloud native skill tree
- Mysql35 master slave replication
- [C language] deeply analyze the underlying principle of data storage
- Water and rain condition monitoring reservoir water and rain condition online monitoring
- 1. Mx6u learning notes (VII): bare metal development (4) -- master frequency and clock configuration
- A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
- Nanny hand-in-hand teaches you to write Gobang in C language
- MySQL34-其他数据库日志
- MySQL20-MySQL的数据目录
猜你喜欢

A trip to Macao - > see the world from a non line city to Macao

保姆级手把手教你用C语言写三子棋

Introduction tutorial of typescript (dark horse programmer of station B)

MySQL 20 MySQL data directory

Ueeditor internationalization configuration, supporting Chinese and English switching

Just remember Balabala

MySQL36-数据库备份与恢复

MySQL25-索引的创建与设计原则

数据库中间件_Mycat总结

Export virtual machines from esxi 6.7 using OVF tool
随机推荐
第一篇博客
MySQL25-索引的创建与设计原则
Csdn-nlp: difficulty level classification of blog posts based on skill tree and weak supervised learning (I)
Global and Chinese markets of static transfer switches (STS) 2022-2028: Research Report on technology, participants, trends, market size and share
Global and Chinese market for intravenous catheter sets and accessories 2022-2028: Research Report on technology, participants, trends, market size and share
Water and rain condition monitoring reservoir water and rain condition online monitoring
text 文本数据增强方法 data argumentation
First blog
In fact, the implementation of current limiting is not complicated
CSDN问答标签技能树(一) —— 基本框架的构建
MySQL 29 other database tuning strategies
Nanny hand-in-hand teaches you to write Gobang in C language
February 13, 2022-2-climbing stairs
Mysql 其他主机无法连接本地数据库
CSDN问答模块标题推荐任务(一) —— 基本框架的搭建
Introduction tutorial of typescript (dark horse programmer of station B)
Use of dataset of pytorch
Advantages and disadvantages of evaluation methods
MySQL21-用戶與權限管理
Pytoch LSTM implementation process (visual version)