c#之 简单stmp/pop邮件服务(一)—— 发送邮件

c#的邮件服务,主要有两种。

一种是利用JMail组件,进行收发。

另一种是利用vs自带的stmp/pop3邮件服务,来实现。

我将要讲解的是利用stmp/pop3邮件服务。原因无它。vs自己就有,无需安装插件之类。

首先,我们要添加stmp/pop3邮件服务类的命名空间:

using System.Net.Mail;

接下来,我给出源代码,并给出详细注释!是一个邮件发送函数,已测试成功。

如果你只想用,而不想理解那么多细节,那么在最后面,我给出了一个比较精简的发送邮箱函数(点击此处链接),希望,对你有帮助!

/// <summary>
        ///
邮件发送
        ///
</summary>
        /// <param
name="strTo">收信对象邮箱</param>
       
/// <param
name="strSubject">邮件主题</param>
       
/// <param
name="strBody">邮件内容</param>
       
public static bool SendEmail(string strTo, string strSubject, string
strBody)
       
{
           string
strSmtpServer = "smtp.163.com";
//163邮件服务器
           
string strFrom = "*****@163.com";
//用户邮箱
           
string strFromPass = "****";//用户密码

//string
strSmtpServer = "smtp.qq.com";
//qq邮件服务器
             //string
strSmtpServer = "202.108.3.190"; //新浪邮件服务器

SmtpClient
client = new
SmtpClient(strSmtpServer);//创建邮箱服务器对象

client.UseDefaultCredentials = false;//获取或设置是否使用默认凭据访问 Web
代理服务器
           
client.Credentials = new System.Net.NetworkCredential(strFrom,
strFromPass);//创建用户对象
           
client.DeliveryMethod = SmtpDeliveryMethod.Network;//投递方式

MailMessage
message = new MailMessage();   
//创建邮件对象
           
message.From = new MailAddress(strFrom);   
//发信人地址
           
message.To.Add(strTo);                     
//添加收信人地址
           
message.Subject =
strSubject;              
//邮件主题
           
message.Body =
strBody;                    
//邮件内容

//当然,你也把上面五条语句简化为如下:

//MailMessage message = new MailMessage(strFrom, strto, strSubject,
strBody);

//添加附件,要注意的是,发送附件可能会慢点,耐心等下!
           
//Attachment attachment = new Attachment("e://a.xls");  
//创建附件对象,括号内参数为要添加的附件所在的地址 
           //
message.Attachments.Add(attachment);                     
//添加到邮件

message.BodyEncoding = System.Text.Encoding.UTF8;//获取或设置用于邮件正文的编码

message.IsBodyHtml = true;//取得或设定值,指出电子邮件的主体是否为
HTML
            if
(!string.IsNullOrEmpty(strBody))//判断邮件内容是否为空
           
{
               
try
               
{
                   
client.Send(message);//发送

MessageBox.Show("发送成功!");
                   
return
true;
               
}
               
catch(Exception
ex)
               
{
                   
MessageBox.Show("发送失败:"+ex.Message);
                   
return
false;
               
}
           
}
           
else
           
{
               
MessageBox.Show("不能发送空信息!");
               
return
false;
           
}

}

这里,再举一个调用该函数的例子:

SendEmail("*****@qq.com","测试", "发送成功!");

这里还要说明下邮件服务的一些细节,对于发邮件而言是stmp协议,而要接收邮件把stmp改成pop就可以,在以后的文章中,

将介绍到如何接收邮件:

1.qq邮箱

邮件服务器:smtp.qq.com

但要注意一点,qq的stmp/pop3服务必须开启才能连接,开启方法详见:

http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=308&&id=26

2.163邮箱

邮件服务器:smtp.163.com

3.新浪邮箱

邮件服务器:202.108.3.190

对于想设置为新浪邮箱的服务器的朋友,有三点要注意下:

1.服务器名设置不能用stmp.sina.com, 而是用它的ip地址,不信,你试试。

2.它的stmp/pos3功能要手动开启,方法同qq一样,这里就不重复了。

3.它不能发送qq邮件

下面是上面代码的精简版:

/// <summary>
        ///
邮件发送
        ///
</summary>
        /// <param
name="strTo">收信对象邮箱</param>
       
/// <param
name="strSubject">邮件主题</param>
       
/// <param name="strBody">邮件内容</param>

public static bool SendEmail2(string strto, string strSubject, string
strBody)
       
{
            string
strSmtpServer = "smtp.163.com";
//163邮件服务器
           
string strFrom = "*******@163.com";
           
string strFromPass = "*******";

SmtpClient client = new
SmtpClient(strSmtpServer);
           
client.Credentials = new System.Net.NetworkCredential(strFrom,
strFromPass);
           
client.DeliveryMethod = SmtpDeliveryMethod.Network;

MailMessage message = new MailMessage(strFrom, strto, strSubject,
strBody);
          
           
//添加附件,要注意的是,发送附件可能会慢点,耐心等下!
           
//Attachment attachment = new Attachment("e://a.xls");  
//创建附件对象,括号内参数为要添加的附件所在的地址 
           
//message.Attachments.Add(attachment);                     
//添加到邮件    
       
           
try
               
{
                   
client.Send(message);
                     
MessageBox.Show("发送成功!");

return
true;
               
}
               
catch (Exception
ex)
               
{
                   
MessageBox.Show("发送失败:" +
ex.Message);
                   
return
false;
               
}
       
       
}

【引用】http://blog.csdn.net/kkfdsa132/article/details/5388228

时间: 2024-10-14 14:52:32

c#之 简单stmp/pop邮件服务(一)—— 发送邮件的相关文章

【初学菜鸟作--邮件服务的简单配置案例】

邮件服务器的配置以及使用 实验一:                    实验目的:简单搭建出邮件服务器并测试其可用性                    实验环境:DNS服务器一台,安装有Portfix的邮件服务器一台 实验步骤: 一.邮件的发送(SMTP) 1.在邮件服务器配置主机名,ip,并安装portfix并启动 [[email protected]~]# tail -2 /etc/sysconfig/network HOSTNAME=mail.tarena.com   [[email

邮件服务的安装及简单应用

基本概念 电子邮件服务 MUA: 邮件用户代理 MTA: 邮件传送代理 MDA:邮件投递代理 MAA:邮件访问代理 Postfix的主配置文件 /etc/postfix/main.cf Postconf 配置工具 Pstconf -d |wc - 默认设置 Postconf -d |grep interface Postconf -d |grep insterfacl 配置默认设置 Postconf -e 即时写入 Mailbox_size_limit=\51200000 注意:当非默认设置与默

马哥linux高薪中级-POSTFIX邮件服务

第一章.概述 1.邮件服务通常使用什么协议? SMTP:简单邮件传输协议,只实现传输功能,没有索引.加密邮件功能. ESMTP,SMTP的升级版本,可以实现身份检测功能了. POP3::post office protocol 邮局协议 IMAP4:互联网访问协议 SASL:邮件认证协议 2.邮件服务的发展简史. 早期unix之间的通信协议是UUCP协议(unix to unix copy,主机间复制文件协议).后来出现了smtp,smtp具有路由功能,可以依据邮件的目的地址来通过邮件中继器进行

James+Javamail构建邮件服务

James+Javamail构建邮件服务 本文描述如何使用James搭建具备一定邮件过滤.邮件操作功能的邮件服务器,以及使用Javamail实现对James服务器邮件的收发功能. 1 关于James与Javamail Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP.POP3与NNTP等多种邮件相关协议.James是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail

邮件服务系列之一基础原理

Mail Server: SMTP:Simple Mail Transfer Protocol 简单邮件传输协议 ESMTP :Extend Simple Mail Transfer Protocol POP3:Post Office Protocol邮局协议版本3 IMAP4:Internet Mail Access Protocol交互式邮件存取协议 邮件系统的工作: 互联网诞生不久出现了UUCP:Unix to Unix Copy unix主机之间复制文件的协议,指定源主机以及目标主机,这

postfix 邮件服务的安装及详解

sendmail:性能好,设置复杂,适合老手 qmail:体积小260+k ,模块化.需要做二次开发,适合对邮件性能有要求的 postfix:前身是sendmail,postfix原本是sendmail里面的一个模块,红帽6默认安装好postfix zmailer:近几年才出来的邮件 coremail:国内做的最好的商业平台,运行在linux上 Pop:允许客户端下载邮件,移动标记已读等操作  不会反馈到服务器. Imap4:双向通讯,客户端的操作会反馈到服务器,提供想更过的功能,听歌更好的邮件

搭建Apache James邮件服务

什么是邮件服务器 邮件服务器是一种用来负责电子邮件收发管理的设备,而邮件服务就是责邮件的收信和发信功能,其最主要有pop和smtp两个协议.关于这两个协议,有着很多的知识点涵盖其中,这里不过多介绍.下面是我接触过的两个可以实现邮件服务的解决方案. 1.易邮邮件服务 在windows系统下,可以使用 易邮邮件服务 ,这个服务器简单而且实用,用在平时开发,测试或者局域网间的邮件收发还是挺方便的,不过我没有找到官方的,可以将易邮邮件服务安装在Linx的相关资料,因此不使用这个.这是易邮邮件服务的官方网

Linux 邮件服务搭建

Linux 邮件服务搭建 邮件服务针对,在大型企业使用的比较多,一般小型企业都会买一些邮件服务,或者使用一些免费的邮件服务,达到我们使用的需求,并且不需要自己维护,下面我就来简单安装一下两个邮箱的案例,方便我们去理解. 邮件方案 1.免费方案,免费邮件企业邮箱 有限制- 最多50人等··· 2.付费企业邮箱 3.搭建的邮箱 邮件相关知识了解 发邮件协议:smtp 25端口 发邮件服务:postfix 服务 收邮件协议:pop pop3 110端口.imap 143端口 收邮件服务:dovecot

搭建 Postfix、Dovecot 邮件服务

搭建 Postfix.Dovecot 邮件服务 准备域名 任务时间:15min ~ 20min 域名注册 如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频. 视频 - 在腾讯云上购买域名 域名解析 域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为: <您的 CVM IP 地址> 在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考下面的视频: 视频 - 如何在腾讯云上解析域名 完成该实验共需要添加两条记录: A 记录 记录类型:A 主机记录:@ 记录值:&