四.本文源程序代碼( 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#才能發揮其最大的功能。