大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> 用Visual C#发送电子邮件

用Visual C#发送电子邮件

时间: 2021-07-31 作者:daque

visual c#是微软公司推出的下一代步调开拓谈话。他不只具备visual c++功效宏大的特性,又具备visual basic的简略,易上手的特性。以是已经推出,就收到了宏大步调开拓职员的欢送。visual c#和visual c++的一个鲜明的辨别在乎,visual c#自己是没有类库的,而visual c++却是自己就带有类库。visual c#固然没有类库,但动作.net框架中的一个格外要害的开拓谈话。他不妨运用.net框架供给的一个通用的软硬件开拓包--.net framework sdk。这个软硬件开拓包不妨说是visual c#功效的蔓延,visual c#即是经过他实行了自己没辙实行的很多功效。正文即是来引见visual c#怎样运用这个软硬件开拓包来发送电子邮件的。  一.软硬件开拓和运转的情况树立:  i > .视窗体例2000效劳器版  ii > ..net framework sdk beta 2版  iii > .翻开"遏制面板",加入"增添和简略步调",而后再点击"增添/简略windows组件",就不妨瞥见以次界面:          图01:体例摆设界面   点中"internet消息效劳( iis )",而后点击"精细消息",可获得如次界面:       图02:体例摆设界面   点中采用"smtp serverce"选项,而后按"决定"按钮。再按"下一步"按钮,则体例在从新启用后,就会安置好运转正文步调所须要的smtp service了。  二.visual c#怎样发送电子邮件:  在.net framework sdk beta 2版中,有一个叫作system.web.mail的称呼空间,在这个称呼空间中封装发送电子邮件的本领、东西和属性。visual c#即是经过挪用此称呼空间中的本领、东西和属性,发送电子邮件的。在正文中,发送电子邮件重要用到了二个东西:一个是mailmessage东西,此东西主假如封装电子邮件的各个属性,即所谓的发信人,接收者,函件的中心,函件的实质和函件的附属类小部件等。其余一个是smtpmail东西,这个东西的最大效率是把仍旧设置好各个属性的mailmessage东西给发送出去,而实行此功效,就须要挪用smtpmail东西的send ( )本领。  三.在visual c#中精确运用发送电子邮件关系的东西:  (1).要挪用东西,固然开始就要在步调的最前方导出封装东西的称呼空间,简直如次:    using system.web.mail ;  (2).正决定义mailmessage东西的属性:  mailmessage东西中庸电子邮件关系的属性不妨用下表来表白:属性称呼 代办意旨 from 源地方 to 手段地方 subject 邮件中心 priority 邮件优先级 ( high , low , normal ) attachments 附属类小部件 bcc 暗送地方 cc 抄送地方 body 邮件实质主体 bodyformat 邮件方法( html , text ) bodyencoding 邮件源代码( base64 , uuencode )   在步调中,简直的实行语句如次:mailmessage amessage = new mailmessage ( ) ;//兴建一个mailmessage东西amessage.from = fromtextbox.text ;//设置发信人地方,即使是多人,不妨用","划分amessage.to = totextbox.text ;//设置接收者地方,即使是多人,不妨用","划分amessage.cc = cctextbox.text ;//设置抄送人地方,即使是多人,不妨用","划分amessage.bcc = bcctextbox.text ;//设置暗送人地方,即使是多人,不妨用","划分amessage.subject = subjecttextbox.text ;//设置邮件的中心amessage.body = messagetextbox.text ;//设置邮件的实质if ( attachmenttextbox.text.length > 0 )amessage.attachments.add ( new mailattachment ( attachmenttextbox.text , mailencoding.base64 ) ) ; //给邮件减少一个附属类小部件   注:"="右边是步调中设置的文本框的"text"值。  (3).用smtpmail东西精确发送电子邮件:  在visual c#中挪用smtpmail东西的send ( )本领有多种办法。正文引见的不过个中的一种比拟常用的挪用办法,即:smtpmail.send ( mailmessage东西 )。在步调中的实行语句如次:   smtpmail.send ( amessage ) ;  四.正文源步调代码( send.cs )以及步调运转界面:  下图是编写翻译好的步调的运转界面:      图03:send.cs步调运转界面   以次是send.cs源步调代码:using system ;using system.drawing ;using system.collections ;using system.componentmodel ;using system.windows.forms ;using system.data ;using system.web ;using system.web.mail ;//导出步调中运用到的称呼空间public class form1 : form{  private label label1 ; private label label2 ; private label label3 ; private button sendbutton ; private button exitbutton ; private textbox fromtextbox ; private textbox totextbox ; private textbox subjecttextbox ; private textbox messagetextbox ; private textbox cctextbox ; private label cclabel ; private textbox bcctextbox ; private label label4 ; private label label5 ; private button browsebutton ; private openfiledialog openfiledialog1 ; private textbox attachmenttextbox ; private system.componentmodel.container components = null ; public form1 ( ) {   initializecomponent ( ) ; } //废除在步调中运用的一切资源 protected override void dispose ( bool disposing ) {  if ( disposing )  {   if ( components != null )    {    components.dispose ( ) ;   }  }  base.dispose ( disposing ) ; }  private void initializecomponent ( ) {  messagetextbox = new textbox ( ) ;  totextbox = new textbox ( ) ;  sendbutton = new button ( ) ;  exitbutton = new button ( ) ;  fromtextbox = new textbox ( ) ;  label1 = new label ( ) ;  subjecttextbox = new textbox ( ) ;  label2 = new label ( ) ;  label3 = new label ( ) ;  cctextbox = new textbox ( ) ;  cclabel = new label ( ) ;  bcctextbox = new textbox ( ) ;  label4 = new label ( ) ;  label5 = new label ( ) ;  attachmenttextbox = new textbox ( ) ;  browsebutton = new button ( ) ;  openfiledialog1 = new openfiledialog ( ) ;  fromtextbox.location = new system.drawing.point ( 96 , 16 ) ;  fromtextbox.name = "fromtextbox" ;  fromtextbox.size = new system.drawing.size ( 240 , 20 ) ;  fromtextbox.tabindex = 0 ;  fromtextbox.text = "" ;  totextbox.location = new system.drawing.point ( 96 , 53 ) ;  totextbox.name = "totextbox" ;  totextbox.size = new system.drawing.size ( 240 , 20 ) ;  totextbox.text = "" ;  totextbox.tabindex = 1 ;  cctextbox.location = new system.drawing.point ( 96 , 88 ) ;  cctextbox.name = "cctextbox" ;  cctextbox.size = new system.drawing.size ( 240 , 20 ) ;  cctextbox.tabindex = 2 ;  cctextbox.text = "" ;  bcctextbox.location = new system.drawing.point ( 96 , 120 ) ;  bcctextbox.name = "bcctextbox" ;  bcctextbox.size = new system.drawing.size ( 240 , 20 ) ;  bcctextbox.tabindex = 3 ;  bcctextbox.text = "" ;  subjecttextbox.location = new system.drawing.point ( 96 , 152 ) ;  subjecttextbox.name = "subjecttextbox" ;  subjecttextbox.size = new system.drawing.size ( 240 , 20 ) ;  subjecttextbox.tabindex = 4 ;  subjecttextbox.text = "" ;  attachmenttextbox.location = new system.drawing.point ( 96 , 184 ) ;  attachmenttextbox.name = "attachmenttextbox" ;  attachmenttextbox.size = new system.drawing.size ( 168 , 20 ) ;  attachmenttextbox.tabindex = 5 ;  attachmenttextbox.text = "" ;  messagetextbox.location = new system.drawing.point ( 8 , 216 ) ;  messagetextbox.multiline = true ;  messagetextbox.name = "messagetextbox" ;  messagetextbox.size = new system.drawing.size ( 320 , 152 ) ;  messagetextbox.text = "" ;  messagetextbox.tabindex = 6 ;  browsebutton.location = new system.drawing.point ( 280 , 184 ) ;  browsebutton.name = "browsebutton";  browsebutton.size = new system.drawing.size ( 56 , 24 ) ;  browsebutton.text = "欣赏文献" ;  browsebutton.tabindex = 7 ;  browsebutton.click += new system.eventhandler ( browsebutton_click ) ;  sendbutton.location = new system.drawing.point ( 64 , 380 ) ;  sendbutton.name = "sendbutton" ;  sendbutton.size = new system.drawing.size ( 72 , 24 ) ;  sendbutton.text = "发送邮件" ;  sendbutton.tabindex = 8 ;  sendbutton.click += new system.eventhandler ( sendbutton_click ) ;  exitbutton.location = new system.drawing.point ( 200 , 380 ) ;  exitbutton.name = "exitbutton" ;  exitbutton.size = new system.drawing.size ( 72 , 24 ) ;  exitbutton.text = "退出步调";  exitbutton.tabindex = 9 ;  exitbutton.click += new system.eventhandler ( exitbutton_click ) ;  label1.font = new system.drawing.font ( "宋体", 9f );  label1.location = new system.drawing.point ( 48 , 16 ) ;  label1.name = "label1" ;  label1.size = new system.drawing.size ( 48 , 16 ) ;  label1.text = "发信人:" ;  label2.font = new system.drawing.font ( "宋体", 9f );  label2.location = new system.drawing.point ( 48 , 53 ) ;  label2.name = "label2" ;  label2.size = new system.drawing.size ( 48 , 16 ) ;  label2.text = "接收者:" ;   label3.font = new system.drawing.font ( "宋体", 9f ) ;  label3.location = new system.drawing.point ( 48 , 152 ) ;  label3.name = "label3" ;  label3.size = new system.drawing.size ( 48 , 16 ) ;  label3.text = "主 题:" ;  cclabel.font = new system.drawing.font ( "宋体", 9f ) ;  cclabel.location = new system.drawing.point ( 48 , 88 ) ;  cclabel.name = "cclabel" ;  cclabel.size = new system.drawing.size ( 48 , 16 ) ;  cclabel.text = "抄 送:" ;  label4.font = new system.drawing.font ( "宋体", 9f ) ;  label4.location = new system.drawing.point ( 48 , 120 ) ;  label4.name = "label4" ;  label4.size = new system.drawing.size ( 48 , 16 ) ;  label4.text = "暗 送:" ;  label5.font = new system.drawing.font ( "宋体", 9f ) ;  label5.location = new system.drawing.point ( 48 , 184 ) ;  label5.name = "label5" ;  label5.size = new system.drawing.size ( 48 , 16 ) ;  label5.text = "附 件:" ;  openfiledialog1.title = "采用文献动作邮件的附属类小部件:" ;  this.autoscalebasesize = new system.drawing.size ( 5 , 13 ) ;  this.clientsize = new system.drawing.size ( 344 , 413 ) ;    this.controls.add ( browsebutton ) ;  this.controls.add ( attachmenttextbox ) ;  this.controls.add ( label5 ) ;  this.controls.add ( label4 ) ;  this.controls.add ( bcctextbox ) ;  this.controls.add ( cclabel ) ;  this.controls.add ( cctextbox ) ;  this.controls.add ( exitbutton ) ;  this.controls.add ( sendbutton ) ;  this.controls.add ( label3 ) ;  this.controls.add ( label2 ) ;  this.controls.add ( label1 ) ;  this.controls.add ( subjecttextbox ) ;  this.controls.add ( totextbox ) ;  this.controls.add ( fromtextbox ) ;  this.controls.add ( messagetextbox ) ;  this.name = "form1" ;  this.text = "用visual c#做邮件发送软硬件!" ;  this.resumelayout ( false ); } static void main ( )  {  application.run ( new form1 ( ) ) ; } private void sendbutton_click ( object sender , system.eventargs e ) {  try  {   mailmessage amessage = new mailmessage ( ) ;   //兴建一个mailmessage东西   amessage.from = fromtextbox.text ;   //设置发信人地方,即使是多人,不妨用","划分   amessage.to = totextbox.text ;   //设置接收者地方,即使是多人,不妨用","划分   amessage.cc = cctextbox.text ;   //设置抄送人地方,即使是多人,不妨用","划分   amessage.bcc = bcctextbox.text ;   //设置暗送人地方,即使是多人,不妨用","划分   amessage.subject = subjecttextbox.text ;   //设置邮件的中心   amessage.body = messagetextbox.text ;   //设置邮件的实质   if ( attachmenttextbox.text.length > 0 )    amessage.attachments.add ( new mailattachment ( attachmenttextbox.text , mailencoding.base64 ) ) ;    //给邮件减少一个附属类小部件   smtpmail.send ( amessage ) ;   //发送电子邮件   messagebox.show( "电子邮件仍旧发送给->" + totextbox.text ) ;  }  catch ( exception ex )  {   messagebox.show ( ex.message.tostring ( ) ) ;  } } private void exitbutton_click ( object sender , system.eventargs e ) {  application.exit ( ) ; } private void browsebutton_click ( object sender , system.eventargs e ) {  if ( openfiledialog1.showdialog ( ) == dialogresult.ok )  {   attachmenttextbox.text = openfiledialog1.filename ;  } }}   五.归纳:  至此咱们仍旧用visual c#实行了一个功效格外完美的电子邮件发送软硬件。看来,在步调中,起到要害效率的是.net framework sdk,恰是他的充分的类库,使得发送电子邮件形成一件格外轻快的工作。本来你也惟有控制了.net framework sdk中的类库,visual c#本领表现其最大的功效。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.