C#发送邮件

来源:互联网 发布:怎么查本机网络ip地址 编辑:程序博客网 时间:2024/05/16 15:09

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

namespace GroupToDispatchMail
{
    class SmtpClientService
    {   
        public static void service(){
            try
            {
                MailMessage mail = mailPublic.mail;
                //设置邮件的标题
                mail.Subject = “您好”;

                //设置邮件的发件人
                //Pass:如果不想显示自己的邮箱地址,这里可以填符合mail格式的任意名称,真正发mail的用户不在这里设定,这个仅仅只做显示用
                mail.From = new MailAddress(emailUrl1.Text,"崔岩龙"); //邮件的发件人

                //设置邮件的收件人
                string address = "";
                string displayName = "";
                /**/
                /*  这里这样写是因为可能发给多个联系人,每个地址用 ; 号隔开
          一般从地址簿中直接选择联系人的时候格式都会是 :用户名1 < mail1 >; 用户名2 < mail 2>; 
          因此就有了下面一段逻辑不太好的代码
          如果永远都只需要发给一个收件人那么就简单了 mail.To.Add("收件人mail");
        */
                string mainName = “3333@qq.com;32424242@qq.com;”;
                string[] mailNames = (mainName).Split(';');
                foreach (string name in mailNames)
                {
                    if (name != string.Empty)
                    {
                        if (name.IndexOf('<') > 0)
                        {
                            displayName = name.Substring(0, name.IndexOf('<'));
                            address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
                        }
                        else
                        {
                            displayName = string.Empty;
                            address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
                            
                        }
                      
                        mail.To.Add(new MailAddress(address, displayName));
                    }
                }


                //设置邮件的内容
                mail.Body = "成功了";
                //设置邮件的格式
                mail.BodyEncoding = System.Text.Encoding.UTF8;
                mail.IsBodyHtml = true;
                //设置邮件的发送级别
                mail.Priority = MailPriority.Normal;

                //设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中
                mail.Attachments.Add(new Attachment(mailPublic.fileName));

                mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
            
                SmtpClient client = new SmtpClient();
                //设置用于 SMTP 事务的主机的名称,填IP地址也可以了
                client.Host = mailPublic.host;
                //设置用于 SMTP 事务的端口,默认的是 25
                client.Port = 25;
                client.UseDefaultCredentials = false;
                //这里才是真正的邮箱登陆名和密码,比如我的邮箱地址是 312983516@qq,com, 
                client.Credentials = new System.Net.NetworkCredential(312983516@qq.com, "不告诉你");
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                //都定义完了,正式发送了
                client.Send(mailPublic.mail);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }

    }
    }
}

 

主页面进行一下布局 我是用线程的方式调用的 因为他考虑到群发 这样应该可以加快些速度

原创粉丝点击