代码改变世界

C# 邮件发送,可根据需求修改为群发~

2011-12-06 08:58  Andrew.Wangxu  阅读(3318)  评论(22编辑  收藏  举报

- -,

我直接上图 上代码吧。

 

代码:

using System;  
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.IO;

namespace SendMailExample
{
/// <summary>
/// 作者:Andrew
/// Blog: http://blog.csdn.net/Andrew_wx
/// </summary>
public partial class FormSendMail : Form
{
public FormSendMail()
{
InitializeComponent();
}

private void FormSendMail_Load(object sender, EventArgs e)
{
txtSmtpServer.Text = "smtp.qq.com";
txtSend.Text = "heuandmei@qq.com";
txtDisplayName.Text = "Andrew(王旭)";
txtPassword.Text = "";//密码
txtReceive.Text = "heuandmei@qq.com";
txtTitle.Text = "发信测试";
txtBody.Text = "This is a test(测试)";
rbtnNoSSL.Checked = true;
}

private void btnAddFiles_Click(object sender, EventArgs e)
{
OpenFileDialog odlg = new OpenFileDialog();
odlg.CheckFileExists = true;
//只接收有效的文件名
odlg.ValidateNames = true;
//允许一次选择多个文件作为附件
odlg.Multiselect = true;
if (odlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
lstFiles.Items.AddRange(odlg.FileNames);
}

}

private void btnSend_Click(object sender, EventArgs e)
{
this.Cursor = Cursors.WaitCursor;
MailMessage mail = new MailMessage();
mail.From = new MailAddress(
txtSend.Text, txtDisplayName.Text, Encoding.UTF8);
mail.To.Add(txtReceive.Text);
mail.Subject = txtTitle.Text;
mail.SubjectEncoding = Encoding.Default;
mail.Body = txtBody.Text;
mail.BodyEncoding = Encoding.Default;
mail.IsBodyHtml = false;
mail.Priority = MailPriority.Normal;
//添加附件
Attachment attachment = null;
if (lstFiles.Items.Count > 0)
{
for (int i = 0; i < lstFiles.Items.Count; i++)
{
string pathFileName = lstFiles.Items[i].ToString();
string extName = Path.GetExtension(pathFileName).ToLower();
//判断附件类型
if (extName == ".rar" || extName == ".zip")
{
attachment = new Attachment(pathFileName, MediaTypeNames.Application.Zip);
}
else
{
attachment = new Attachment(pathFileName, MediaTypeNames.Application.Octet);
}
ContentDisposition cd = attachment.ContentDisposition;
cd.CreationDate = File.GetCreationTime(pathFileName);
cd.ModificationDate = File.GetLastWriteTime(pathFileName);
cd.ReadDate = File.GetLastAccessTime(pathFileName);
mail.Attachments.Add(attachment);

}
}
SmtpClient client = new SmtpClient();
client.Host = txtSmtpServer.Text;
client.Port = 25;
//是否使用安全套接字层加密连接
client.EnableSsl = rbtnUseSSL.Checked;
//不使用默认凭证,注意此句必须放在 client.Credentials 的上面
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(txtSend.Text, txtPassword.Text);
//邮件通过网络直接发送到服务器
client.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
client.Send(mail);
MessageBox.Show("发送成功");
}
catch (SmtpException ex)
{
MessageBox.Show("发送失败:" + ex.Message);
}
catch (Exception ex)
{
MessageBox.Show("发送失败:" + ex.Message);
}
finally
{
mail.Dispose();
client = null;
this.Cursor = Cursors.Default;
}
}
}
}

 

以上是完整代码。

项目包下载地址:https://files.cnblogs.com/andrew-blog/SendMailExample.rar


参考:http://www.wxzzz.com/?id=66