邮件通知

时间:2024.4.14

关于20xx年成人教育本科毕业生学士学位申报工作的通知 一、申报人员:名单见附件“信息查询表格”

二、申报材料:

1、每个申报者的学位申请表二份(A4纸打印),快递给我,或者送到办公室敬行楼B203。

注:申请表上单位的意见须由学生所在单位的人事组织部门签署意见,并加盖公章。 2、常熟理工学院成教本科毕业生学位资格审核表(电子即可,发到我的邮箱chjlhy@163.com)

3、每个申报者的毕业论文一份(纸质,经指导老师确定,装订好),

答辩记录表电子稿:(根据自己的论文设计2-3个问题,将问题和答案均填写在表格内;班级写“2013化学专升本”或者“2013安全工程专升本”或者其它;将文件命名为“答辩记录表—人名” 发到我邮箱) 成绩评定表电子稿:(将表头写好,“题目、姓名、学号、班级、专业”。班级填写如上述。其余不写;将成绩评定表,连同修改好之后的论文发到指导老师的邮箱里,由指导老师填写评语后在发到我邮箱里,命名为“成绩评定表—人名” )

4、每个申报者的电子照片、纸质照片(2寸)各一张,需符合毕业生图像采集标准。(由学院统一办理)

三、申报时间:20xx年5月5日之前务必把所需材料都上交。


第二篇:用C#做个带精灵的邮件通知程序


用C#做个带精灵的邮件通知程序

Visual C#是微软公司推出的下一代程序开发语言,是微软.Net框架中的的一个重要组成部分。微软的.Net平台堪称为新一代的互联网平台。对于技术开发人员来说,.Net平台的两大特性是非常卓越的,首先是其所提供的公共语言运行时,也就是公用语言运行平台,另一方面就是其庞大而全面的统一编程类。Visual C#就是通过调用这些类、对象来实现许多比较强大的功能。 在互联网应用中,电子邮件一直占据着重要的位置。互联网上每天都有大量的电子邮件,我们每天都要花时间去收发邮件,而有时却收不到一封邮件,有时却很多。要是我们能做一个邮件通知程序就好了。本文就向大家介绍用C#做个邮件通知程序,同时也向大家展示一下C#编程的一些特性。

一. 简介:

这个邮件通知程序是一个用来通知用户的邮件服务器中是否有新邮件的TCP/IP程序。程序还带有一个精灵来通知用户具体的新邮件数,所以用户界面比较新奇。程序每隔5分钟就自动连接到邮件服务器进行新邮件的检查。用户还可以对程序进行配置:设置时间间隔,设置邮件服务器地址以及端口号,设置用户名以及密码。此程序还是居于系统托盘的,所以是在后台运行的。

二. 工程步骤:

1. 在VS.net下新建一个C#的Windows应用程序的工程,不妨命名为“EmailNotifier”。

用C做个带精灵的邮件通知程序

2. 设计主界面和精灵界面:

先将主窗体的ShowInTaskbar属性设置为false,FormBorderStyle属性设置为FixedDialog,Text属性设置为“配置参数”。

再在主窗体上添加五个标签控件(Label Control)、五个文本框控件(TextBox Control)、两个按钮控件(Button Control)、一个系统托盘控件(NotifyIcon Control)、一个上下文菜单控件(ContextMenu Control)以及一个时钟控件(Timer Control)。

对各个控件进行属性设置:将五个标签的Text属性分别设置为“邮件服务器地址:”、“服务器端口:”、“用户名:”、“密码:”、“时间间隔(毫秒):”;将五个文本框的Name属性分别设置为:“ServerAdd”、“ServerPort”、“Username”、“Password”、“TimeSpan”;将前四个文本框的Text属性均设置为空,将最后一个的设置为300000(因为我们默认的时间间隔为5分钟);还有把第四个文本框的PasswordChar属性设置为“*”,这样输入的时候就

隐藏了密码;把按钮控件的Text属性设置为“隐藏”和“检查邮件”;将系统托盘的Icon属性设置为一个图标文件;在上下文菜单下添加三个子项“配置参数”、“检查邮件”、“退出”。 这样主界面已经设计完毕,图示如下:

用C做个带精灵的邮件通知程序

接着设计精灵界面。

我们用到的精灵是用Microsoft Agent创建的,它是完全居于COM的,所以我们可以很方便的利用它。有关它的详细信息,可以参考微软网站上的资料,网址为:

/msagent/downloads.htm。先从那里下载以下一些东西:

(1)Microsoft Agent核心组建

(2) Microsoft Agent的精灵:吉尼(Genie)、么林(Merlin)、罗比(Robby)和皮蒂(Peedy)

(3)至少有一个英语的Text-to-Speech引擎(现在还找不到中文的)

(4)微软运行时发音API4.0a

有了这些,我们就可以在我们的任何程序中应用了,只要在程序中添加此ActiveX控件即可。

我们先添加一个新的窗体Form2,图示如下:

用C做个带精灵的邮件通知程序

在新添加的窗体上我们要用到Microsoft Agent这个控件,于是就导入它到该工程中,图示如下:

3. 重要的代码部分:

在主窗体的代码部分,因为我们要用到网络以及网络流等类的对象,所以首先得添加以下几个重要的名字空间(Namespace):

using System.Net;

using System.Net.Sockets;

using System.IO;

using System.Text;

接着,给我们的类添加一个NetworkStream对象来控制网络中的流。

private NetworkStream netStream;

给该类的构造函数添加如下代码,设置时钟的时间间隔以及使程序一开始就不可见而只有系统托盘。

timer1.Interval=Int32.Parse(TimeSpan.Text);//设定时间间隔

this.Opacity=0;//使窗体不可见

我们用到一个重要的函数EmailCheck()。这个函数先新建一个TcpClient对象进行网络连接,用一个try-catch设法连接到用户输入的邮件服务器。如果连接成功,则用netStream对象取得网络流:netStream = tcpClient.GetStream();最后完成信息的发送和获取。函数如下: private void EmailCheck()

{

//新建一个TcpClient对象来建立连接

TcpClient tcpClient = new TcpClient();

try

{

tcpClient.Connect(ServerAdd.Text,Int32.Parse(ServerPort.Text));

}

catch

{

MessageBox.Show("不能连接到主机:"+ServerAdd.Text+"和端口:"+ServerPort.Text); }

//从邮件服务器获得相应

netStream = tcpClient.GetStream();

if(netStream == null)

{

throw new Exception("获得的网络流为空值。");

}

string returnMsg=ReadFromNetStream(ref netStream);

checkForError(returnMsg);

//发送用户名信息

WriteToNetStream(ref netStream, "USER " + this.Username.Text);

returnMsg=ReadFromNetStream(ref netStream);

checkForError(returnMsg);

//发送密码信息

WriteToNetStream(ref netStream, "PASS " + this.Password.Text); returnMsg=ReadFromNetStream(ref netStream);

checkForError(returnMsg);

Stat();

netStream.Close();

tcpClient.Close();

}

用C做个带精灵的邮件通知程序

现在,我们的工具箱里已经有了相应的控件,我们就可以直接使用了。(在程序运行时这个控件是不可见的)

(如果读者有兴趣的话,可以到我的另一篇有关Microsoft Agent控件的文章:

.cn/htm/app/aprog/01_12_29_2.asp看看)

上面的函数中用到了ReadFromNetStream()、WriteToNetStream()、Stat()、checkForError()等函数。ReadFromNetStream()是用来从网络流中读取信息的,带一个类型为ref

NetworkStream的参数;WriteToNetStream()是向网络流中写入信息的,带两个类型为ref NetworkStream,string的参数;Stat()是当检查到新邮件后用来向用户报告信息的函数;checkForError()是进行查错的,带一个String类型的参数。四个函数如下:

///

/// 这个函数用来显示新邮件数信息

///

public void Stat()

{

WriteToNetStream(ref netStream, "STAT");

string returnMsg=ReadFromNetStream(ref netStream);

checkForError(returnMsg);

//将总邮件数和邮件大小分离

string[] TotalStat= returnMsg.Split(new char[] {' '});

int count =Int32.Parse(TotalStat[1]);

int totalSize=Int32.Parse(TotalStat[2]);

//调用精灵,告知用户新邮件数

Form2 agent= new Form2(count);

}

///

/// 这个函数用来向网络流写入数据

///

///

///

private void WriteToNetStream(ref NetworkStream NetStream, string Command) {

string stringToSend = Command + "\r\n";

Byte[] arrayToSend = Encoding.ASCII.GetBytes(stringToSend.ToCharArray()); NetStream.Write(arrayToSend, 0, arrayToSend.Length);

}

///

/// 这个函数用来从网络流中读取数据

///

///

///

private String ReadFromNetStream(ref NetworkStream NetStream) {

StringBuilder strReceived= new StringBuilder();

StreamReader sr= new StreamReader(NetStream);

String strLine = sr.ReadLine();

while(strLine==null || strLine.Length==0)

{

strLine = sr.ReadLine();

}

strReceived.Append(strLine);

if(sr.Peek()!=-1)

{

while ((strLine=sr.ReadLine())!=null) {

strReceived.Append(strLine);

}

}

return strReceived.ToString();

}

///

/// 这个函数用来检测网络流中的错误

///

///

private void checkForError(String strMessage) {

if (strMessage.IndexOf("+OK") == -1)

throw new Exception("ERROR - . Recieved: " + strMessage);

}

对于主窗体,我们还要添加各类事件处理函数,这样程序就可以工作了。各函数如下: private void menuItem1_Click(object sender, System.EventArgs e)

{

this.Opacity=100;//使窗体可见

}

private void menuItem2_Click(object sender, System.EventArgs e)

{

this.EmailCheck();//检查是否有新邮件

}

private void menuItem3_Click(object sender, System.EventArgs e)

{

this.Close();//退出程序

}

private void button1_Click(object sender, System.EventArgs e)

{

this.Opacity=0;//使窗体不可见

}

private void button2_Click(object sender, System.EventArgs e)

{

this.EmailCheck();//检查是否有新邮件

}

private void timer1_Tick(object sender, System.EventArgs e)

{

this.EmailCheck();//检查是否有新邮件

}

在新建窗体的代码部分,主要是导入精灵并运用精灵向用户报告新邮件数等的处理问题。程序中,只要修改该类的构造函数即可:

public Form2(int EmailNumber)

{

//

// Required for Windows Form Designer support

//

InitializeComponent();

//

// TODO: Add any constructor code after InitializeComponent call //

//你可以从下面的地址下载

///msagent/downloads.htm

//

axAgent1.Characters.Load("Genie","Genie.acs");//导入精灵吉尼(Genie) AgentObjects.IAgentCtlCharacterEx genie=axAgent1.Characters["Genie"]; //genie的语言ID =1033,为英语

genie.Show(false);

genie.Speak("You Have "+ EmailNumber.ToString()+" emails",""); genie.Think("Should I Leave or Stay, Himmm!!!!");

genie.Hide(true);

}

注意:genie的语言ID为1033,对应于英语,现在还不支持中文。

4. 程序的运行测试:

运行程序后,配置参数界面如下:

用C做个带精灵的邮件通知程序

若有新邮件,精灵吉尼就会冒出来向你报告。

用C做个带精灵的邮件通知程序

源代码:.cn/document/images/200202/20xxxxxxxxxxxx107.rar

更多相关推荐:
生日聚会邮件通知

温馨提示:为感谢员工辛勤的付出和努力,丰富员工精神文化生活,增强员工归属感与集体荣誉感,进一步促进企业文化建设。公司决定举办员工生日庆祝会,让员工度过一个难忘的时刻。活动具体方案如下:一、举办精神:“我爱公司,…

关于发送邮件通知开会人员及邮件发送版本

尊敬的各位领导:晚上好!3月x日晚上19时,在行政办公楼5楼2号会议室召开会议;会议主题:总经理管理工作部署会议内容:1、明确下一步的各部门工作部署;2、梳理各部门的工作不足及提出改善意见和建议;会议主持:公司…

关于邮件往来正确书写格式的通知

关于邮件往来正确书写格式的通知各位同仁为规范公司内部邮件书写格式提升办公效率现对所有往来邮件书写做如下通知请所有人严格按照此格式书写邮件1所有往来邮件应有主题称谓内容落款时间2邮件主题应简洁易懂方便收件人查看3...

商务英语:会议通知邮件写作范例

在线英语外教一对一培训商务英语会议通知邮件写作范例会议通知announcingaMeeting常用句子1AstaffmeetinghasbeenscheduledforMondayJune5that2pm员工大...

邮件规范通知

关于有效使用邮件及格式规范的通知为了公司工作流程的顺畅和对外联络的形象请大家注意以下几点1处理公司内部各种事宜请以邮件形式发送重要2处理公司外部事宜请以使用邮件为基本若需发送较大邮件可以通过QQ传送推荐通过QQ...

放假通知电子邮件模板

放假通知各位同事根据国务院办公厅关于20xx年部分节假日安排的通知现将公司20xx年中秋节放假的具体安排通知如下中秋节9月8日放假与周末9月6日7日连休9月9日上班请各位同事提前安排好手头工作祝大家节日愉快配图...

通知面试和入职的通知邮件

DocumentName新员工入职工作手册面试通知主题公司面试通知正文您好请于本周下周月日上午900下午200到处参加面试地址为路号商务楼B幢4楼面试时请带一份简历收到后请回复邮件确认谢谢到时可联系电话1234...

关于公司新邮箱系统启用的通知

关于公司新邮箱系统启用的通知各单位公司各部门为满足企业及员工信息交流和网上办公需要统一公司形象进一步推动企业信息化建设和应用水平公司信息中心建立了全新的邮箱系统现已测试完毕于本通知之日起正式启用新邮箱系统启用的...

面试通知邮件-主动投递型

尊敬的先生女士感谢您对我公司的关注我们收到您的求职简历很高兴地通知您已经通过我公司的初步筛选特邀请您前来参加我公司组织的首轮面试具体安排如下公司全称公司公司网站公司地址面试时间年月日周联系电话联系人乘车参考路线...

关于统一邮件书写规范的通知

关于统一邮件书写规范的通知总公司各部门各级机构为统一邮件文化提高办公效率提升内外形象我司现将邮件书写规范要求明确如下一标题规范邮件标题采用请XX主题的格式包括请回复请参考请转达请反馈等二背景规范邮件背景为默认的...

关于邮件快递签收规定的通知

关于邮件快递签收规定的通知,内容附图。

关于启用工作邮箱的通知

关于启用工作邮箱的通知公司各部门为了方便工作快速沟通进一步提高工作效率公司决定统一启用个人工作邮箱现将有关事项通知如下一公司所有员工使用的电子邮箱必须与自己的手机绑定即日起请公司员工确保本人工作邮箱有此功能二在...

邮件通知(20篇)