C#发送 Mail 小程序
这2天换了一个部门,部长要求每天下班前用Mail给他发工作报告,简要说一下当天的工作,写了2天以后感觉每天都要排版、填写收件人这些信息等等等等。。。。实在是太麻烦了~~~,就写了一个小程序处理这些内容,我只管填写工作内容,然后点一下按钮就行了。
语言:VS2005.NET C#
以下是代码:
1、DailyReport.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net.Mail;
namespace DailyReport
{
public partial class DailyReport : Form
{
string sendBodyTxt = "工作报告\n\t";
DailyReport
private void btnSend_Click( object sender, EventArgs e )
{
try
{
if( txtFrom.Text.Length == 0 )
{
return;
}
if( txtTo.Text.Length == 0 )
{
return;
}
if( txtBody.Text.Length == 0 )
{
return;
}
MailAddress from = new MailAddress( txtFrom.Text, "yourname" );
MailAddress to = new MailAddress( txtTo.Text );
MailMessage message = new MailMessage( from, to );
MailAddress copy = new MailAddress( txtFrom.Text );
// 获取包含此电子邮件的抄送 (CC) 收件人的地址集合。
message.CC.Add( copy );
// 获取或设置此电子邮件的主题行。
message.Subject = DateTime.Now.ToString( "yyyy-MM-dd" ) + " 工作报告";
/*邮件内容以句号为分割点来形成行。这部分可以自己来写算法。
* 例如:看书。学习。打游戏。
* 1、看书
* 2、学习
* 3、打游戏
*/
string[] txtBodys = txtBody.Text.Split( new string[] { "。" }, StringSplitOptions.RemoveEmptyEntries );
if( txtBodys.Length == 0 )
{
sendBodyTxt += "1、 " + txtBodys[ 0 ];
}
else
{
for( int i = 0; i < txtBodys.Length; i++ )
{
sendBodyTxt += Convert.ToString( i + 1 ) + "、 " + txtBodys[ i ] + "\n\t";
}
}
// 获取或设置邮件正文。
message.Body = sendBodyTxt;
// 获取或设置用于邮件正文的编码。
message.BodyEncoding = Encoding.UTF8;
// 获取或设置此电子邮件的优先级。
message.Priority = MailPriority.Normal;
// 初始化 SmtpClient 类的新实例,让其使用指定的 SMTP 服务器发送电子邮件。
// 参数:包含用于 SMTP 事务的主机的名称或 IP 地址。
SmtpClient client = new SmtpClient( "163.com" );
// Include credentials if the server requires them。
client.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
// 已重载。 将电子邮件发送到 SMTP 服务器以便传递。这些方法在传输邮件的过程中将阻止其他操作。
client.Send( message );
labResult.Text = "Success";
}
catch( Exception ex )
{
labResult.Text = ex.Message;
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net.Mail;
namespace DailyReport
{
public partial class DailyReport : Form
{
string sendBodyTxt = "工作报告\n\t";
DailyReport
private void btnSend_Click( object sender, EventArgs e )
{
try
{
if( txtFrom.Text.Length == 0 )
{
return;
}
if( txtTo.Text.Length == 0 )
{
return;
}
if( txtBody.Text.Length == 0 )
{
return;
}
MailAddress from = new MailAddress( txtFrom.Text, "yourname" );
MailAddress to = new MailAddress( txtTo.Text );
MailMessage message = new MailMessage( from, to );
MailAddress copy = new MailAddress( txtFrom.Text );
// 获取包含此电子邮件的抄送 (CC) 收件人的地址集合。
message.CC.Add( copy );
// 获取或设置此电子邮件的主题行。
message.Subject = DateTime.Now.ToString( "yyyy-MM-dd" ) + " 工作报告";
/*邮件内容以句号为分割点来形成行。这部分可以自己来写算法。
* 例如:看书。学习。打游戏。
* 1、看书
* 2、学习
* 3、打游戏
*/
string[] txtBodys = txtBody.Text.Split( new string[] { "。" }, StringSplitOptions.RemoveEmptyEntries );
if( txtBodys.Length == 0 )
{
sendBodyTxt += "1、 " + txtBodys[ 0 ];
}
else
{
for( int i = 0; i < txtBodys.Length; i++ )
{
sendBodyTxt += Convert.ToString( i + 1 ) + "、 " + txtBodys[ i ] + "\n\t";
}
}
// 获取或设置邮件正文。
message.Body = sendBodyTxt;
// 获取或设置用于邮件正文的编码。
message.BodyEncoding = Encoding.UTF8;
// 获取或设置此电子邮件的优先级。
message.Priority = MailPriority.Normal;
// 初始化 SmtpClient 类的新实例,让其使用指定的 SMTP 服务器发送电子邮件。
// 参数:包含用于 SMTP 事务的主机的名称或 IP 地址。
SmtpClient client = new SmtpClient( "163.com" );
// Include credentials if the server requires them。
client.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
// 已重载。 将电子邮件发送到 SMTP 服务器以便传递。这些方法在传输邮件的过程中将阻止其他操作。
client.Send( message );
labResult.Text = "Success";
}
catch( Exception ex )
{
labResult.Text = ex.Message;
}
}
}
}
2、DailyReport.Designer.cs
namespace DailyReport
{
partial class DailyReport
{
/// <summary>
///
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
///
/// </summary>
/// <param name="disposing"></param>
protected override void Dispose( bool disposing )
{
if( disposing && ( components != null ) )
{
components.Dispose();
}
base.Dispose( disposing );
}
Windows生成
private System.Windows.Forms.TextBox txtTo;
private System.Windows.Forms.Button btnSend;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtFrom;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtBody;
private System.Windows.Forms.Label labResult;
private System.Windows.Forms.Button button1;
}
}
{
partial class DailyReport
{
/// <summary>
///
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
///
/// </summary>
/// <param name="disposing"></param>
protected override void Dispose( bool disposing )
{
if( disposing && ( components != null ) )
{
components.Dispose();
}
base.Dispose( disposing );
}
Windows生成
private System.Windows.Forms.TextBox txtTo;
private System.Windows.Forms.Button btnSend;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtFrom;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtBody;
private System.Windows.Forms.Label labResult;
private System.Windows.Forms.Button button1;
}
}