C#編程實(shí)現(xiàn)發(fā)送郵件的方法(可添加附件)
本文實(shí)例講述了C#編程實(shí)現(xiàn)發(fā)送郵件的方法。分享給大家供大家參考,具體如下:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
namespace WindowsFormsApplication63
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//打開(kāi)上傳附件的對(duì)話(huà)框
private void btnUP_Click(object sender, EventArgs e)
{
oFDialogSFile.InitialDirectory = "C:\\";//設(shè)置對(duì)話(huà)框的初始目錄為C盤(pán)
oFDialogSFile.Filter = "all files (*.*)|*.*";//篩選字符串為所有文件
oFDialogSFile.RestoreDirectory = true;
oFDialogSFile.ShowDialog();
cboxAccessories.Items.Add(oFDialogSFile.FileName.Trim());//當(dāng)選擇好文件后將文件名賦值給下拉框
}
//發(fā)送郵件
private void btnSend_Click(object sender, EventArgs e)
{
try
{
string file = Application.StartupPath + "testXML.xml";
//SmtpClient下的一個(gè)對(duì)象,用以設(shè)置郵件的主題和內(nèi)容
System.Net.Mail.MailMessage myMail = new System.Net.Mail.MailMessage();
//發(fā)送端到接收端的郵箱地址
myMail = new System.Net.Mail.MailMessage(txtSEmail.Text.Trim(), txtCEmail.Text.Trim());
myMail.Subject = txtETitle.Text.Trim();
myMail.Body = txtEContent.Text.Trim();
if (cboxAccessories.Items.Count > 0)
{
for (int i = 0; i < cboxAccessories.Items.Count; i++)
{ //建立郵件附件類(lèi)的一個(gè)對(duì)象,語(yǔ)法格式為System.Net.Mail.Attachment(文件名,文件格式)
System.Net.Mail.Attachment myAttachment = new System.Net.Mail.Attachment(
cboxAccessories.Items[i].ToString(), System.Net.Mime.MediaTypeNames.Application.Octet);
//MIME協(xié)議下的一個(gè)對(duì)象,用以設(shè)置附件的創(chuàng)建時(shí)間,修改時(shí)間以及讀取時(shí)間
System.Net.Mime.ContentDisposition disposition = myAttachment.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
//用smtpclient對(duì)象里attachments屬性,添加上面設(shè)置好的myattachment
myMail.Attachments.Add(myAttachment);
}
}
//建立發(fā)送對(duì)象client,驗(yàn)證郵件服務(wù)器,服務(wù)器端口,用戶(hù)名,以及密碼
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(txtSService.Text.Trim(), Convert.ToInt32(txtServicePort.Text.Trim()));
client.Credentials = new System.Net.NetworkCredential(txtUPwd.Text.Trim(), txtCEmail.Text.Trim());
client.Send(myMail);
MessageBox.Show("郵件發(fā)送成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void 刪除上傳文件_Click(object sender, EventArgs e)
{
if (cboxAccessories.Text == "")
{
MessageBox.Show("沒(méi)有附件可刪!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
cboxAccessories.Items.Remove(cboxAccessories.Text.Trim());
}
}
}
}
效果圖如下:

點(diǎn)擊發(fā)送,效果如下

總結(jié)一下,發(fā)送郵件的過(guò)程如下:
1.建立System.Net.Mail.MailMessage下的對(duì)象,設(shè)置郵件的內(nèi)容和主題。
2.如果要添加附件,建立System.Net.Mail.Attatch下的對(duì)象,用1中的對(duì)象中的添加附件的屬性讀取它。
3.SEND郵件(MAIL+附件)。
如果要實(shí)現(xiàn)群發(fā),則可以將發(fā)送郵件的代碼(TRY附近的幾行)寫(xiě)成方法,循環(huán)調(diào)用即可。
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C# WebApi Get請(qǐng)求方式傳遞實(shí)體參數(shù)的方法示例
這篇文章主要給大家介紹了關(guān)于C# WebApi Get請(qǐng)求方式傳遞實(shí)體參數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
C# 控制臺(tái)實(shí)現(xiàn)一次性輸入多行的操作
這篇文章主要介紹了C# 控制臺(tái)實(shí)現(xiàn)一次性輸入多行的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
c#編寫(xiě)webservice服務(wù)引用實(shí)例分享
c#編寫(xiě)webservice服務(wù)引用實(shí)例分享,大家參考使用吧2013-12-12
C#實(shí)現(xiàn)的4種常用數(shù)據(jù)校驗(yàn)方法小結(jié)(CRC校驗(yàn),LRC校驗(yàn),BCC校驗(yàn),累加和校驗(yàn))
本文主要介紹了C#實(shí)現(xiàn)的4種常用數(shù)據(jù)校驗(yàn)方法小結(jié)(CRC校驗(yàn),LRC校驗(yàn),BCC校驗(yàn),累加和校驗(yàn)),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

