zoukankan      html  css  js  c++  java
  • C#基础-邮件发送

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Threading.Tasks;
      6 using System.Net.Mail;
      7 using System.Net.Mime;
      8 using System.Net;
      9 using System.IO;  
     10 
     11 namespace TestForm
     12 {
     13     class Email
     14     {
     15         string smtpHost = string.Empty;
     16         string Sendmailaddress = string.Empty;
     17         string Sendpassword = string.Empty;
     18         string SendDisplayname = string.Empty;
     19         string Recevivemailaddress = string.Empty;
     20         string ReceviveDisplayname = string.Empty;
     21 
     22         /// <summary>
     23         /// 
     24         /// </summary>
     25         /// <param name="host">主机号</param>
     26         /// <param name="sendmailaddress">发送人邮箱地址</param>
     27         /// <param name="sendpassword">发送邮箱密码</param>
     28         /// <param name="sendDisplayname">发送人显示名称</param>
     29         /// <param name="recevivemailaddress">接收人邮箱地址</param>
     30         /// <param name="receviveDisplayname">接收人显示名称</param>
     31         public Email(string host, string sendmailaddress, string sendpassword, string sendDisplayname, string recevivemailaddress, string receviveDisplayname) 
     32         {
     33             smtpHost = host;
     34             Sendmailaddress = sendmailaddress;
     35             Sendpassword = sendpassword;
     36             SendDisplayname = sendDisplayname;
     37             Recevivemailaddress = recevivemailaddress;
     38             ReceviveDisplayname = receviveDisplayname;
     39         }
     40 
     41         /// <summary>
     42         /// 发送邮件功能
     43         /// </summary>
     44         /// <param name="mailsubject">邮件标题</param>
     45         /// <param name="mailbody">邮件主要内容</param>
     46         /// <param name="isadddocument">是否添加附件</param>
     47         /// <param name="documentpath">添加附件的文件路径列表</param>
     48         /// <returns></returns>
     49         public bool Sendmail(string mailsubject, string mailbody, bool isadddocument, List<string> documentpath)
     50         {
     51             bool sendstatus = false;
     52             try 
     53             {
     54                 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(smtpHost);  //确定smtp服务器地址。实例化一个Smtp客户端
     55                 MailAddress from = new MailAddress(Sendmailaddress, SendDisplayname, Encoding.UTF8);//构造一个发件人地址对象
     56                 MailAddress to = new MailAddress(Recevivemailaddress, ReceviveDisplayname, Encoding.UTF8);//构造一个收件人地址对象                
     57                 MailMessage message = new MailMessage(from, to);//构造一个Email的Message对象
     58 
     59                 message.Subject = mailsubject;
     60                 message.SubjectEncoding = Encoding.UTF8;
     61                 message.Body = mailbody;
     62                 message.BodyEncoding = Encoding.UTF8;
     63 
     64                 //设置邮件的信息
     65                 client.DeliveryMethod = SmtpDeliveryMethod.Network;
     66                 message.BodyEncoding = System.Text.Encoding.UTF8;
     67                 message.IsBodyHtml = false;
     68 
     69                 //如果服务器支持安全连接,则将安全连接设为true。
     70                 //如果是gmail则一定要将其设为true
     71                 if (smtpHost == "smpt.gmail.com")
     72                     client.EnableSsl = true;
     73                 else
     74                     client.EnableSsl = false;
     75 
     76                 if (isadddocument == true)
     77                 {
     78                     AddDocument(message, documentpath);
     79                 }
     82                 client.UseDefaultCredentials = false;
     83                 //用户登陆信息
     84                 NetworkCredential myCredentials = new NetworkCredential(Sendmailaddress, Sendpassword);
     85                 client.Credentials = myCredentials;
     86                 //发送邮件
     87                 client.Send(message);
     88                 sendstatus = true; 
     89             }
     90             catch { }
     91             return sendstatus;
     92         }
     93 
     94         /// <summary>
     95         /// 添加附件功能
     96         /// </summary>
     97         /// <param name="message">Mailmessage对象</param>
     98         /// <param name="Documentpath">附件路径列表</param>
     99         private void AddDocument(MailMessage message, List<string> Documentpath)
    100         {
    101             foreach(string filepath in Documentpath)
    102             {
    103                 try
    104                 {
    105                     if (File.Exists(filepath)) //判断文件是否存在
    106                     {
    107                         Attachment attach = new Attachment(filepath);    //构造一个附件对象
    108                         ContentDisposition disposition = attach.ContentDisposition;   //得到文件的信息
    109                         disposition.CreationDate = System.IO.File.GetCreationTime(filepath);
    110                         disposition.ModificationDate = System.IO.File.GetLastWriteTime(filepath);
    111                         disposition.ReadDate = System.IO.File.GetLastAccessTime(filepath);
    112                         message.Attachments.Add(attach);   //向邮件添加附件
    113                     }
    114                 }
    115                 catch { }      
    116             }             
    117         }
    118     }
    119 }

    做网站的时候用到,看到一篇博文:http://www.cnblogs.com/youring2/archive/2008/11/29/1343911.html

    深感有用,特小修并写成类,希望能帮人帮己~

  • 相关阅读:
    01.网页学习阶段、整站分析、规划
    书签搬运
    如何判断两个链表相交及找到第一个相交点
    Windows平台使用git bash管理github中的工程
    二级指针的操作
    结构体的内存对齐
    大端和小端
    剑指Offer——面试题26:复杂链表的复制
    使用editcap命令将ERF格式转换为pcap格式
    如何在STL的map中使用结构体作为键值
  • 原文地址:https://www.cnblogs.com/lovecsharp094/p/5515866.html
Copyright © 2011-2022 走看看