使用SmtpClient发送邮件的方法

程序是这样的:

代码如下:

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();
}

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

(0)

相关推荐

  • 用Socket发送电子邮件(利用需要验证的SMTP服务器)

    <? *  名称:用Socket发送电子邮件 *  描述:本类实现了直接使用需要验证的SMTP服务器直接发送邮件,参考文章<用Socket发送电子邮件>作者:limodou *        此文章比较早,他是用不用验证SMTP服务器发送邮件,现在基本上SMTP服务器都需要验证了,所以这个文章里的类           意义也不是很大!同时参考了[RFC 1869]和PHP手册!!和上文还有不同的是我用的不是fsockopen()函数           具体你自己看吧!!我刚刚测试通过

  • PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)

    smtp.php <?phpclass smtp { /* Public Variables */ var $smtp_port; var $time_out; var $host_name; var $log_file; var $relay_host; var $debug; var $auth; var $user; var $pass; /* Private Variables */ var $sock; /* Constractor */ function smtp($relay_ho

  • php中通过smtp发邮件的类,测试通过

    smtp.php 复制代码 代码如下: <?php class smtp {     /* Public Variables */     var $smtp_port;     var $time_out;     var $host_name;     var $log_file;     var $relay_host;     var $debug;     var $auth;     var $user;     var $pass; /* Private Variables */ 

  • smtp邮件发送一例

    test_smtp.php <?require("smtp.php"); $smtp=new smtp_class; $smtp->host_name="mail.xiaocui.com";$smtp->localhost="localhost";$from="webmaster@xiaocui.com";$to="root@xiaocui.com";if($smtp->SendMe

  • php下使用SMTP发邮件的代码

    最近一个项目需要用到SMTP发送邮件,之前的库类不存在了,又不喜欢安装pear或者使用pear的net/smtp类,感觉太复杂了.就直接从discuz中抽取出核心稍微修改了下.    从协议分析网上,查找到SMTP协议的命令和应答,SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的.常用的命令如下:    HELLO<domain><CRLF>识别发送方到接收SMTP的一个HELLO命令    MAIL FROM:<

  • SMTP客户端未通过身份验证等多种错误解决方案分享

    最近在做邮件发送接口 把遇到的问题和解决方法告诉大家  希望对了解邮件的人有所帮助 原程序部分代码如下 //设置邮件信息 发件人地址.收件人地址.标题.主题 MailMessage mail = new MailMessage("xxxxxxx@sina.com", "zzzzzzz@sina.com", "标题", "主题"); //设置邮件主题格式 mail.BodyEncoding = Encoding.UTF8; //

  • .net SMTP发送Email邮件且可带附件示例

    复制代码 代码如下: public static void sendEmail(string toAddress, string emailbody) { var fromAddress = ConfigurationManager.AppSettings["EmailAddress"]; string fromPassword = ConfigurationManager.AppSettings["EmailPassword"].ToString(); const

  • PHPMailer邮件类利用smtp.163.com发送邮件方法

    第一步:需要下载PHPMailer文件包phpmailer-1.73.tar.gz 来自开源社区: http://phpmailer.sourceforge.net/ 第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets 如果没有这一项就请注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项. 第三步:把文件解压到你的web服务器目录下,调用类就可以了,说明:首

  • C#实现SMTP邮件发送程序实例

    通常来说邮件发送功能在网站应用程序中经常会用到,包括大家经常看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,本文展示了一个客户端Demo,希望对有需要的朋友有所帮助.运行效果如下图所示: 核心代码如下: 复制代码 代码如下: using System; using System.Net; using System.Net.Mail; using System.Text; namespace HC.Email {     /// <summary>   

  • Python httplib,smtplib使用方法

    例一:使用httplib访问某个url然后获取返回的内容: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->import httplibconn=httplib.HTTPConnection("www.cnblogs.com")conn.request("GET", "/coderzh/archive

随机推荐