欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#编程实现发送邮件的方法(可添加附件)

程序员文章站 2022-03-21 13:56:42
本文实例讲述了c#编程实现发送邮件的方法。分享给大家供大家参考,具体如下: using system.collections.generic; using sy...

本文实例讲述了c#编程实现发送邮件的方法。分享给大家供大家参考,具体如下:

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();
  }
  //打开上传附件的对话框
  private void btnup_click(object sender, eventargs e)
  {
   ofdialogsfile.initialdirectory = "c:\\";//设置对话框的初始目录为c盘
    ofdialogsfile.filter = "all files (*.*)|*.*";//筛选字符串为所有文件
    ofdialogsfile.restoredirectory = true;
   ofdialogsfile.showdialog();
   cboxaccessories.items.add(ofdialogsfile.filename.trim());//当选择好文件后将文件名赋值给下拉框
  }
  //发送邮件
  private void btnsend_click(object sender, eventargs e)
  {
    try
    {
     string file = application.startuppath + "testxml.xml";
     //smtpclient下的一个对象,用以设置邮件的主题和内容
      system.net.mail.mailmessage mymail = new system.net.mail.mailmessage();
     //发送端到接收端的邮箱地址
      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++)
      { //建立邮件附件类的一个对象,语法格式为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协议下的一个对象,用以设置附件的创建时间,修改时间以及读取时间
       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对象里attachments属性,添加上面设置好的myattachment
       mymail.attachments.add(myattachment);
      }
     }
     //建立发送对象client,验证邮件服务器,服务器端口,用户名,以及密码
     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("邮件发送成功!", "提示", 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("没有附件可删!", "提示", messageboxbuttons.ok, messageboxicon.information);
   }
   else
   {
    cboxaccessories.items.remove(cboxaccessories.text.trim());
   }
  }
  }
}

效果图如下:

C#编程实现发送邮件的方法(可添加附件)

点击发送,效果如下

C#编程实现发送邮件的方法(可添加附件)

总结一下,发送邮件的过程如下:

1.建立system.net.mail.mailmessage下的对象,设置邮件的内容和主题。
2.如果要添加附件,建立system.net.mail.attatch下的对象,用1中的对象中的添加附件的属性读取它。
3.send邮件(mail+附件)。

如果要实现群发,则可以将发送邮件的代码(try附近的几行)写成方法,循环调用即可。

希望本文所述对大家c#程序设计有所帮助。