中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

C#實現(xiàn)對郵件的發(fā)送

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

首先是郵件幫助類

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Windows.Forms;

namespace zzEmail
{
    //郵件幫助類
    class MailHelper
    {
        SmtpClient smtpClient;
        //郵件實體類,包含用戶名密碼
        MailModel mail;
        UserModel to;
        public MailHelper()
        { 
        }
        public MailHelper(MailModel mail, UserModel t)
        {
            smtpClient = new SmtpClient();
            this.mail = mail;
            this.to = t;
        }
        public void send()
        {
            MailMessage msg=null;
            smtpClient.Credentials = new System.Net.NetworkCredential(mail.from.Send_Address.Address, mail.from.password);//設(shè)置發(fā)件人身份的票據(jù)  
            smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            smtpClient.Host = "smtp." + mail.from.Send_Address.Host;
            try
            {
                msg = mail.GetMail();
                msg.To.Add(to.Send_Address.Address);
                smtpClient.Send(msg);
                MessageBox.Show("發(fā)送成功");
            }
            catch (SmtpException err)
            {
                //如果錯誤原因是沒有找到服務(wù)器,則嘗試不加smtp.前綴的服務(wù)器
                if (err.StatusCode == SmtpStatusCode.GeneralFailure)
                {
                    try
                    {
                        //有些郵件服務(wù)器不加smtp.前綴
                        smtpClient.Host = null;
                        smtpClient.Send(mail.GetMail());
                    }
                    catch (SmtpException err1)
                    {
                        MessageBox.Show(err1.Message, "發(fā)送失敗");
                    }
                }
                else
                {
                    MessageBox.Show(err.Message, "發(fā)送失敗");
                }
            }
            finally
            {
                //及時釋放占用的資源
                msg.Dispose();
            }
        }
    }
}


郵件實體類

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;

namespace zzEmail
{
    //郵件實體類
    class MailModel
    {
        //主題
        public string Subject { get;set;}
        public string SubjectEncoding { get; set; }
        //內(nèi)容
        public string Body { get;set;}
        public string BodyEncoding { get; set; }
        //附件
        public List<Attachment> Attachments=new List<Attachment>();
        public MailMessage message;
        //發(fā)送人
        public UserModel from;

        public MailModel(string subject,string body,UserModel f)
        {
            message = new MailMessage();
            this.Subject = subject;
            this.Body = body;
            this.from = f;
        }
        //添加附件
        public void AddAttach(Attachment file)
        {
            Attachments.Add(file);
        }
        //添加一群附件
        public void AddAttach(List<Attachment> files)
        {
            foreach (Attachment item in files)
            {
                if(item!=null)
                    this.Attachments.Add(item);
            }
        }
        //返回郵件實體
        public MailMessage GetMail()
        {
            if (this.message != null)
            {
                message.Subject = this.Subject;
                message.SubjectEncoding = System.Text.Encoding.UTF8;
                message.Body = this.Body;
                message.BodyEncoding = System.Text.Encoding.UTF8;
                message.From = from.Send_Address;//設(shè)置發(fā)郵件人地址
                foreach (Attachment item in Attachments)
                {
                    if (item != null)
                        this.message.Attachments.Add(item);
                }
                return message;
            }
            else
                return null;
        }
    }
}


郵件的用戶類

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;

namespace zzEmail
{
    //接收郵件的用戶實體類
    class UserModel
    {
        public string nickname { get; set; }
        public string password { get; set; }
        public MailAddress Send_Address{get;set;}
        public UserModel(string useraddr)
        {
            Send_Address = new MailAddress(useraddr);
        }
        public UserModel(string useraddr,string nickname)
        {
            this.nickname = nickname;
            Send_Address = new MailAddress(useraddr);
        }
    }
}


最后是具體的操作

使用多線程來對郵件進(jìn)行發(fā)送

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.Mail;
using System.Threading;

namespace zzEmail
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_addFile_Click(object sender, EventArgs e)
        {
            OpenFileDialog myOpenFileDialog = new OpenFileDialog();
            myOpenFileDialog.CheckFileExists = true;
            //只接收有效的文件名
            myOpenFileDialog.ValidateNames = true;
            //允許一次選擇多個文件作為附件
            myOpenFileDialog.Multiselect = true;
            myOpenFileDialog.ShowDialog();
            if (myOpenFileDialog.FileNames.Length > 0)
            {
                FileList.Items.AddRange(myOpenFileDialog.FileNames);
            }
        }

        private void btn_Send_Click(object sender, EventArgs e)
        {
            UserModel from = new UserModel(txt_UserName.Text);
            from.password = txt_Pass.Text;

            UserModel to = new UserModel(txt_rec.Text);

            MailModel mail = new MailModel(txt_sub.Text, txt_content.Text, from);

            List<Attachment> filelist = new List<Attachment>();
            //添加附件
            if (FileList.Items.Count > 0)
            {
                for (int i = 0; i < FileList.Items.Count; i++)
                {
                    Attachment attachFile = new Attachment(FileList.Items[i].ToString());
                    filelist.Add(attachFile);
                }
            }

            mail.AddAttach(filelist);//添加附件
            MailHelper helper = new MailHelper(mail, to);
            //啟動一個線程發(fā)送郵件
            Thread mythread = new Thread(new ThreadStart(helper.send));
            mythread.Start();
        }
    }
}


 

標(biāo)簽: isp 服務(wù)器

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:php版任意進(jìn)制轉(zhuǎn)換

下一篇:php數(shù)據(jù)處理公共類