导读:
  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

本文转自
http://study.qqcf.com/web/224/24027.htm

用Visual C#发送电子邮件(1)相关推荐

  1. .NET Core 使用MailKit发送电子邮件

    点击上方蓝字关注"汪宇杰博客" 发送邮件通知的功能在各种系统里都很常见.我的博客也能在有新评论.新回复,或者文章被其他网站引用时向管理员发送邮件.那么在.NET Core里,如何实 ...

  2. 如果不使用 SQL Mail,如何在 SQL Server 中发送电子邮件

    如果不使用 SQL Mail,如何在 SQL Server 中发送电子邮件 察看本文应用于的产品 文章编号 : 312839 最后修改 : 2006年12月21日 修订 : 10.1 本页 概要 SQ ...

  3. 亚马逊ses如何发qq_使用Amazon SES发送电子邮件

    亚马逊ses如何发qq by Kangze Huang 黄康泽 使用Amazon SES发送电子邮件 (Sending emails with Amazon SES) 完整的AWS Web样板-教程3 ...

  4. php mail函数_PHP发送电子邮件函数mail详解

    重要:本文最后更新于2019-10-09 08:49:07,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. PHP作为一门使用广泛的脚本语言,经过这么多年发展已经非常完善了,发送电子 ...

  5. 如何使用PHP发送电子邮件?

    本文翻译自:How to send an email using PHP? I am using PHP on a website and I want to add emailing functio ...

  6. 如何从我的Android应用程序发送电子邮件?

    我正在为Android编写应用程序. 如何从中发送电子邮件? #1楼 简单尝试这个 public void onCreate(Bundle savedInstanceState) {super.onC ...

  7. 在Python中使用SMTP发送电子邮件

    Python中有内置的smtplib模块,完成一封邮件的发送,需要做很多准备工作.第三方的py_smtp这个包也是基于smtplib的,在Python中使用py_smtp发送电子邮件非常方便,只要填写 ...

  8. C# 发送电子邮件(含附件)用到的类 system.web.mail

    主要是用到了System.Web.Mail命名空间,用到了此空间的三个类,分别是: ●MailMessage类,用于构造电子邮件 ●MailAttachment类,用于构造电子邮件附件 ●SmtpMa ...

  9. net类库中发送电子邮件的方法总结

    发送电子邮件是许多需要用户注册的网站的通用功能,通过正则表达式我们可以过滤掉不符合电子邮件格式的输入,但是仍没有办法确保用户填写的电子邮件地址一定是他本人真实有效的电子邮件地址,通常验证电子邮件真实有 ...

最新文章

  1. 三星 Nexus S刷MIUI ROM最新图文刷机教程
  2. 关于SharePoint部署Webpart的十个必读链接(downmoon)
  3. html5移动端底部效果,spring mvc +HTML5实现移动端底部上滑异步加载更多内容分页效果...
  4. 微型计算机应用领域及应用,自考“微型计算机应用基础”自考大纲(1)
  5. 多态(继承父类的非静态重写方法)
  6. 帐户分类 密码强度
  7. 任意文件上传之绕过云waf+本地防火墙双重防护
  8. 移动互联网向2.0时代转变
  9. Scratch 3.x编程技巧:条件语句与随机数
  10. 发那科机器人示教器键盘_不限 发那科机器人示教器触摸屏急停按键失效维修...
  11. 中国农业大学计算机专硕2019分数线,中国农业大学2019年硕士研究生复试分数线...
  12. Java 将控制台输出打印 输出到本地文件
  13. qtcpsocket断开_关于QSocket的释放的一个需要注意的情况(必须先断开连接)
  14. Ubuntu下搭建R语言开发环境
  15. android模拟器华为账号,夜神模拟器怎么玩华为账号游戏
  16. 你真的知道什么是三观吗?
  17. uni-app个人中心
  18. Seesaw Loss:目标检测长尾分布loss
  19. rsync实现两台服务器上的实时同步
  20. 配置windows iis

热门文章

  1. Anaconda安装失败解决办法
  2. 基于Android智能手机操作系统的新闻客户端设计
  3. Windows 11 简体中文版、英文版 (x64、ARM64) 下载 (updated Jun 2022)
  4. HTML css web简单的导航栏
  5. pytorch冒号 python冒号
  6. 【数据结构与算法】之深入解析“圆形靶内的最大飞镖数量”的求解思路与算法示例
  7. Python库之SQLAlchemy
  8. FluorineFx.IO.AMFMessage
  9. 在C 用GDI+实现图形图像的任意变形效果
  10. 挽回前任总结和经验教训(不想挽回不用看)