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()); } } } }
效果图如下:
点击发送,效果如下
总结一下,发送邮件的过程如下:
1.建立system.net.mail.mailmessage下的对象,设置邮件的内容和主题。
2.如果要添加附件,建立system.net.mail.attatch下的对象,用1中的对象中的添加附件的属性读取它。
3.send邮件(mail+附件)。
如果要实现群发,则可以将发送邮件的代码(try附近的几行)写成方法,循环调用即可。
希望本文所述对大家c#程序设计有所帮助。