• 发送邮件(C#)


            private MailMessage mailMessage;
            private SmtpClient smtpClient;
            private string password;//发件人密码  
            /// <summary>  
            /// 带参数的构造函数,初始化发送邮件的条件
            /// </summary>  
            /// <param name="To">收件人地址</param>  
            /// <param name="From">发件人地址</param>  
            /// <param name="Body">邮件正文</param>  
            /// <param name="Title">邮件的主题</param>  
            /// <param name="Password">发件人密码</param>  
            public SendMail(string[] To, string From, string Body, string Title, string Password)
            {
                mailMessage = new MailMessage();
                foreach (var item in To)
                {
                    mailMessage.To.Add(item);
                }
                mailMessage.From = new System.Net.Mail.MailAddress(From);
                mailMessage.Subject = Title;
                mailMessage.Body = Body;
                mailMessage.IsBodyHtml = true;
                mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
                mailMessage.Priority = System.Net.Mail.MailPriority.Normal;
                this.password = Password;
            }
            /// <summary>  
            /// 添加附件  
            /// </summary>  
            public void Attachments(string Path)
            {
                string[] path = Path.Split(',');
                Attachment data;
                ContentDisposition disposition;
                for (int i = 0; i < path.Length; i++)
                {
                    data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件  
                    disposition = data.ContentDisposition;
                    disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期  
                    disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期  
                    disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期  
                    mailMessage.Attachments.Add(data);//添加到附件中  
                }
            }
            /// <summary>  
            /// 异步发送邮件  
            /// </summary>  
            /// <param name="CompletedMethod"></param>  
            public void SendAsync(SendCompletedEventHandler CompletedMethod)
            {
                if (mailMessage != null)
                {
                    smtpClient = new SmtpClient();
                    smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据  
                    smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                    smtpClient.Host = "smtp." + mailMessage.From.Host;
                    smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件  
                    smtpClient.SendAsync(mailMessage, mailMessage.Body);
                }
            }
            /// <summary>  
            /// 发送邮件  
            /// </summary>  
            public void Send()
            {
                if (mailMessage != null)
                {
                    using (smtpClient = new SmtpClient())
                    {
                        smtpClient.Timeout = 9999999;
                        smtpClient.EnableSsl = true;
                        smtpClient.UseDefaultCredentials = false;
                        smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据  
                        smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                        smtpClient.Host = "smtp." + mailMessage.From.Host;
                        smtpClient.Send(mailMessage);
                        mailMessage.Attachments.Dispose();
                    }
                }
            }
  • 相关阅读:
    (转)linux下控制帐户过期的多种方法
    跟老男孩学Linx运维---web集群实战笔记
    (转)企业生产环境用户权限集中管理方案案例
    Linux 运维培训笔记
    (转)sudo配置文件/etc/sudoers详解及实战用法
    (转) RHEL7 忘记密码修改root密码
    (转)Mysql数据库之Binlog日志使用总结CentOS 7.x设置自定义开机启动,添加自定义系统服务
    git 删除远程分支
    crontab详解
    PHP数据库长连接mysql_pconnect用法
  • 原文地址:https://www.cnblogs.com/alives/p/13199486.html
Copyright © 2020-2023  润新知