.Net写的Mail Util(C#)

原创 2006年06月09日 10:36:00
前两天用.Net写了个发送mail的util,贴上来。刚接触C#,呵呵。。。。
.net 1.1的。.net 2.0里面关于Mail的API有所变动。



using System;
using System.Text;
using System.IO;
using System.Net;
using System.Web.Mail;
namespace Izhufu.utils{
  
/// <summary>
  /// Summary description for SMTPClient.
  /// SMTPClient is just used for SMTPMail
  /// </summary>
  
public class SMTPClient {
    
private readonly string DELIMITER=";";
    
private MailMessage message;
    
private string[] s_cc;
    
private string[] s_bcc;
    
private int s_port;
    
private bool s_needauth;
    
private string s_username;
    
private string s_password;
    
//constructor
    
public SMTPClient (string from, string[] to, string subject, string server) {
      message=
new MailMessage();
      message.From=from;
      message.To=concatMailAddress(to, DELIMITER);
      message.Subject=subject;
      SmtpMail.SmtpServer=server;
    }

    
//setter for mail server port
    
public void SetPort (int port){
      
this.s_port=port;
    }

    
//setter for mail priority, for example: SetPrioprity(MailPriority.HIGH)
    
public void SetPriority (MailPriority priority){
      message.Priority=priority;
    }

    
//setter for mail server auth configuration
    
public void SetNeedAuth (bool needauth){
      
this.s_needauth=needauth;
    }

    
//setter for mail server user name
    
public void SetUserName (string username){
      
this.s_username=username;
    }

    
//setter for mail server password
    
public void SetPassword (string pwd){
      
this.s_password=pwd;
    }

    
//setter for mail body format html?or text  for exampel: SetFormat(MailFormat.Text)
    
public void SetFormat (MailFormat format){
      message.BodyFormat=format;
    }

    
//setter for mail body
    
public void SetBody (string body){
      message.Body=body;
    }

    
//setter for mail body encoding, for example: SetEncoding(Encoding.ASCII
    
public void SetEncoding (Encoding encoding){
      message.BodyEncoding=encoding;
    }

    
//add attachment to mail
    
public void AddAttachment (MailAttachment attachement){
      message.Attachments.Add(attachement);
    }

    
//set cc 
    
public void SetCC (string[] cc){
      
this.s_cc=cc;
    }

    
//set bcc
    
public void SetBcc (string[] bcc){
      
this.s_bcc=bcc;
    }

    
//private method to concat the mail address with specified delimiter
    
private string concatMailAddress (string[] addresses, string delimiter){
      
if (addresses==nullreturn null;
      
if (addresses.Length==1return addresses[0];
      
string concated="";
      
for (int i=0; i<addresses.Length-1; i++) {
        concated+=addresses[i]+delimiter;
      }
      concated+=addresses[addresses.Length-
1];
      
return concated;
    }

    
//send the mail, if this mail is sent successfully return true, otherwise return false
    
public bool SendMail (){
      
if (s_cc!=null && s_cc.Length>0) {
        message.Cc=concatMailAddress(s_cc, DELIMITER);
      }
      
if (s_bcc!=null && s_bcc.Length>0) {
        concatMailAddress(s_bcc, DELIMITER);
      }
      
if (s_needauth && s_username!=null && s_password!=null) {
        message.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1");
        message.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendusername", s_username);
        message.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendpassword", s_password);
      }
      
try {
        SmtpMail.Send(message);
      }
      
catch {
        
return false;
      }
      
return true;
    }

  }

//End of SMTPClient
}

使用.net(C#)发送邮件(带成功案例)

1.了解发送邮件的三种方式  第一:client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;  //通過遠程SMTP服...
  • linshichen
  • linshichen
  • 2016年06月11日 17:22
  • 4127

使用Java Mail 功能

使用Java Mail 功能
  • xinyuan_java
  • xinyuan_java
  • 2015年10月31日 21:52
  • 1446

.NET开发邮件发送功能的全面教程(含邮件组件源码)

.NET开发邮件发送功能的全面教程(含邮件组件源码) 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能。在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下:...
  • kirawoo
  • kirawoo
  • 2015年07月03日 21:34
  • 18466

C#发送邮件,应用System.Net.Mail例子

邮件发送系列的第二篇文章,本文介绍了使用命名空间system.net.mail下的mailmessage和smtpclient实现了邮件发送。 using system; using system...
  • smeller
  • smeller
  • 2011年12月22日 10:29
  • 870

C#成魔之路<14> 网络编程技术(3 )System.Net.Mail命名空间

System.Net.Mail命名空间包含用于将电子邮件发送到简单邮件传输协议(SMTP)服务器进行传输的类。其中MailMessage类用来表示邮件的内容;Attachment类用来创建邮件附件;S...
  • memories_sunset
  • memories_sunset
  • 2016年03月15日 14:12
  • 401

C#发送电子邮件的名称空间:System.Net.Mail

文章出处:http://book.csdn.net/bookfiles/694/10069421607.shtml本章导读System.Net.Mail命名空间是在.NET Framework中新增的...
  • zoohouse
  • zoohouse
  • 2011年03月17日 11:12
  • 2031

C# 发送电子邮件(含附件)用到的类 system.Net.mail

使用System.Net.Mail 发送邮件总是提示“验证失败”,从网上也没找到确切的答案,大概是因为公司使用了代理网关,程序不能直接与邮件服务器建立连接。使用System.Web.Mail没有问题。...
  • ccx_john
  • ccx_john
  • 2013年09月21日 09:30
  • 1438

C# Asp.net编写的 E-Mail发送程序

  • 2011年08月15日 20:22
  • 1.07MB
  • 下载

.net System.Web.Mail发送邮件 (已过时)

net System.Web.Mail发送邮件 用System.Web.Mail发送邮件,适用于.net1.1。net2.0请用System.Net.Mail 先引用System....
  • mixiu888
  • mixiu888
  • 2017年11月30日 17:22
  • 12150

VB.NET如何实现发送mail 给多个收件者 并带附件

熟悉了下用VB.NET如何发送邮件并带附件,  经个人测试OK 界面如下:      后台代码: Imports System.Net Imports System.Net.Mail ...
  • cheug
  • cheug
  • 2012年05月09日 18:53
  • 1479
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.Net写的Mail Util(C#)
举报原因:
原因补充:

(最多只允许输入30个字)