C#写的邮箱发送程序源代码
2016-07-19 22:57
477 查看
C#写的邮箱发送程序源代码---支持主题、正文、附件的编辑和添加!
2014-07-02 14:30 270人阅读 评论(0) 收藏 举报版权声明:本文为博主原创文章,未经博主允许不得转载。
[csharp] view
plain copy
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CSEmailTest
{
public partial class SendEmail : Form
{
public SendEmail()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
openFileTest.InitialDirectory = "D:\\";
openFileTest.Filter = "all files (*.*)|*.*";
openFileTest.ShowDialog();
MessageBox.Show(openFileTest.FileName.Trim());
listAttachment.Items.Add(openFileTest.FileName.Trim());
}
private void listAttachment_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
for (int i = listAttachment.SelectedItems.Count - 1; i > -1; i--)
{
listAttachment.Items.Remove(listAttachment.SelectedItems[i]);
}
}
}
private void btnSend_Click(object sender, EventArgs e)
{
Email email = new Email();
string orgialEmail=this.txtSendEmail.Text.Trim();
email.mailFrom = orgialEmail;
email.mailPwd = this.txtPwd.Text.Trim();
email.mailSubject =this.txtMySuject.Text.Trim();
email.mailBody = this.txtBody.Text.Trim();
email.isbodyHtml = true; //是否是HTML
int index =orgialEmail.LastIndexOf("@");
// email.host = "smtp."+orgialEmail.Substring(index+1);//如果是QQ邮箱则:smtp:qq.com,依次
email.host = "smtp.163.com";
List<string> listEmail = new List<string>();
foreach (var item in listToEmail.Items)
{
listEmail.Add(item.ToString());
}
email.mailToArray = listEmail.ToArray();//接收者邮件集合
List<string> listCCEmail= new List<string>();
foreach (var item in listCC.Items)
{
listCCEmail.Add(item.ToString());
}
email.mailCcArray = listCCEmail.ToArray();//抄送者邮件集合
List<string> listAtt = new List<string>();
foreach (var item in listAttachment.Items)
{
listAtt.Add(item.ToString());
}
email.attachmentsPath = listAtt.ToArray();//附件集合
if (email.Send())
{
MessageBox.Show("邮件发送成功~");
}
else
{
MessageBox.Show("邮件发送失败~");
}
}
private void btnAddToEmail_Click(object sender, EventArgs e)
{
listToEmail.Items.Add(this.txtToEmail.Text.Trim());
}
private void btnCC_Click(object sender, EventArgs e)
{
listCC.Items.Add(this.txtCCEmail.Text.Trim());
}
}
public class Email
{
/// <summary>
/// 发送者
/// </summary>
public string mailFrom { get; set; }
/// <summary>
/// 收件人
/// </summary>
public string[] mailToArray { get; set; }
/// <summary>
/// 抄送
/// </summary>
public string[] mailCcArray { get; set; }
/// <summary>
/// 标题
/// </summary>
public string mailSubject { get; set; }
/// <summary>
/// 正文
/// </summary>
public string mailBody { get; set; }
/// <summary>
/// 发件人密码
/// </summary>
public string mailPwd { get; set; }
/// <summary>
/// SMTP邮件服务器
/// </summary>
public string host { get; set; }
/// <summary>
/// 正文是否是html格式
/// </summary>
public bool isbodyHtml { get; set; }
/// <summary>
/// 附件
/// </summary>
public string[] attachmentsPath { get; set; }
public bool Send()
{
//使用指定的邮件地址初始化MailAddress实例
MailAddress maddr = new MailAddress(mailFrom);
//初始化MailMessage实例
MailMessage myMail = new MailMessage();
//向收件人地址集合添加邮件地址
if (mailToArray != null)
{
for (int i = 0; i < mailToArray.Length; i++)
{
myMail.To.Add(mailToArray[i].ToString());
}
}
//向抄送收件人地址集合添加邮件地址
if (mailCcArray != null)
{
for (int i = 0; i < mailCcArray.Length; i++)
{
myMail.CC.Add(mailCcArray[i].ToString());
}
}
//发件人地址
myMail.From = maddr;
//电子邮件的标题
myMail.Subject = mailSubject;
//电子邮件的主题内容使用的编码
myMail.SubjectEncoding = Encoding.UTF8;
//电子邮件正文
myMail.Body = mailBody;
//电子邮件正文的编码
myMail.BodyEncoding = Encoding.Default;
myMail.Priority = MailPriority.High;
myMail.IsBodyHtml = isbodyHtml;
//在有附件的情况下添加附件
try
{
if (attachmentsPath != null && attachmentsPath.Length > 0)
{
Attachment attachFile = null;
foreach (string path in attachmentsPath)
{
attachFile = new Attachment(path);
myMail.Attachments.Add(attachFile);
}
}
}
catch (Exception err)
{
throw new Exception("在添加附件时有错误:" + err);
}
SmtpClient smtp = new SmtpClient();
//指定发件人的邮件地址和密码以验证发件人身份
smtp.Credentials = new System.Net.NetworkCredential(mailFrom, mailPwd);
//设置SMTP邮件服务器
smtp.Host = host;
try
{
//将邮件发送到SMTP邮件服务器
smtp.Send(myMail);
return true;
}
catch (System.Net.Mail.SmtpException ex)
{
return false;
}
}
}
}
相关文章推荐
- c# - 反序列化报错:Input string was not in a correct format
- C# 枚举的使用
- C# 正则表达式的使用
- C#生成二维码名片
- C#生成二维码名片
- C#的 第6节课
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解
- C#值类型和引用类型的深入理解