当前位置: 移动技术网 > IT编程>开发语言>c# > C#编程实现发送邮件的方法(可添加附件)

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

2019年07月18日  | 移动技术网IT编程  | 我要评论

本文实例讲述了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());
   }
  }
  }
}

效果图如下:

点击发送,效果如下

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

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

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网