使用SmtpClient发送邮件的方法

所属分类: 软件编程 / C#教程 阅读数: 122
收藏 0 赞 0 分享

程序是这样的:

复制代码 代码如下:

static void Main(string[] args)
{
    SmtpClient client = new SmtpClient();
    client.Host = "localhost";

    MailAddress from = new MailAddress("from@test.com");
    MailAddress to = new MailAddress("to@test.com");
    MailMessage message = new MailMessage(from, to);

    client.Send(message);

    Console.ReadLine();
}

当运行时会报“由于目标计算机积极拒绝,无法连接。”的错误。查了一下据说是SMTP服务没有启动。于是在网上找到了设置的方法,控制面板-〉程序 和功能-〉打开或关闭Windows功能-〉Internet信息服务-〉应用程序开发功能-〉.NET扩展性,把这一项勾上。然后在IIS管理器中就会 出现SMTP电子邮件一项。试着在其中做相关的设定之后,结果还是同样的错误。

又研究了一下,原来Windows 7中的IIS7已经移除了SMTP服务,所以无论如何设置,都是徒劳无用的。(这里有相关的讨论)

解决的办法是安装第三方的SMTP服务器。比如免费的Free SMTP Server。

装完之后无需任何设置,启动SMTP服务器,再运行上面的程序,一切正常。

如果想用网易等第三方SMTP服务器来发送邮件,也很简单。代码稍作修改:

复制代码 代码如下:

static void Main(string[] args)
{
    SmtpClient client = new SmtpClient();
    client.Host = "smtp.163.com";
    client.Credentials = new NetworkCredential("usenme", "password");//必须设置

    MailAddress from = new MailAddress("from@163.com");
    MailAddress to = new MailAddress("to@test.com");
    MailMessage message = new MailMessage(from, to);

    client.Send(message);

    Console.ReadLine();
}

这次的尝试花费了不少的时间,希望其它人看到这篇文章后能够有所帮助。

更多精彩内容其他人还在看

C# 大小写转换(金额)实例代码

C# 大小写转换(金额)实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm中Panel实现用鼠标操作滚动条的实例方法

由于在WinForm中Panel不能直接响应鼠标的滚动事件,只好采用捕获窗体的滚动事件。
收藏 0 赞 0 分享

C#访问应用程序配置文件的方法

C#访问应用程序配置文件的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#读写文件的方法汇总

C#读写文件的方法汇总,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#计算代码执行时间的方法

在一些测试工作时我们需要获得高精度的代码执行时间以比较其效率。
收藏 0 赞 0 分享

C# 动画窗体(AnimateWindow)的小例子

C# 动画窗体(AnimateWindow)的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# zxing二维码写入的实例代码

C# zxing二维码写入的实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

c#判断输入的是不是数字的小例子

c#判断输入的是不是数字的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

c# 深拷贝与浅拷贝的区别分析及实例

浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
收藏 0 赞 0 分享

C#利用com操作excel释放进程的解决方法

最近利用Microsoft.Office.Interop.Excel.Application读取一个excel后,进程中一直存在excel,在网上找了一阵子,其中有几个解决方案
收藏 0 赞 0 分享
查看更多