求救高手 asp.net2.0下邮件发送问题???

pflry2000 2009-03-19 04:59:49
本人用 System.Net.Mail; 写的邮件发送程序设置完成在本地测试成功,为什么在服务器上却报错:

System.Net.Mail.SmtpException: 发送邮件失败。 ---> System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于目标机器积极拒绝,无法连接。 202.152.177.248:25 在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 在 System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout) 在 System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback) 在 System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback) 在 System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) 在 System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port) 在 System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) 在 System.Net.Mail.SmtpClient.GetConnection() 在 System.Net.Mail.SmtpClient.Send(MailMessage message) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.Mail.SmtpClient.Send(MailMessage message)
...全文
137 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ViewStates 2009-03-20
  • 打赏
  • 举报
回复
の。。。具体这个我不是很清楚,不一定是要25号端口,不过默认是这个。如果你用的WINDOWS自带的SMTP的话,只要你装了后默认是给你打开的。
楼上也说了,你可以TELNET看看你的端口是否打开。
stonehy520 2009-03-20
  • 打赏
  • 举报
回复
不懂,学习一下
pflry2000 2009-03-20
  • 打赏
  • 举报
回复
我现在web程序所放置的服务器如果默认的25端口没有打开的话,是不是就不能通过服务器发送邮件,我不需要收邮件。还有启动smtp服务后是不是25端口就必须打开??
ViewStates 2009-03-20
  • 打赏
  • 举报
回复
你要看你服务器上是否配置了SMTP,以及其使用的端口号,和验证方式。
pflry2000 2009-03-20
  • 打赏
  • 举报
回复
那本地测试为什么能发送成功呢?? 谢谢大家
路人乙e 2009-03-20
  • 打赏
  • 举报
回复
使用的smtp服务器有问题
pflry2000 2009-03-20
  • 打赏
  • 举报
回复
如果程序要从服务器上发送邮件,是不是必须打开这个web所放置服务器的25端口
wohaishiliumang 2009-03-19
  • 打赏
  • 举报
回复
iis 有没有配置smtp
pflry2000 2009-03-19
  • 打赏
  • 举报
回复
我的程序没有问题,呵呵,因为在本地测试是没有问题的,这个是 Web 目前放置的这个服务器上设置问题,还是邮件服务器设置问题,对服务器不是很懂,谢谢大家!!
grady.lu 2009-03-19
  • 打赏
  • 举报
回复


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml;
using System.Net.Mail;
using System.Net;
using System.Configuration;
namespace GatePass.Common
{
public class Mail
{
private string _Host;
/// <summary>
/// smtp服务器
/// </summary>
public string Host
{
get { return _Host; }
set { _Host = value; }
}
private string _Sender;
/// <summary>
/// 用于发送邮件地址
/// </summary>
public string Sender
{
get { return _Sender; }
set { _Sender = value; }
}
private string _Password;
/// <summary>
/// 邮件密码
/// </summary>
public string Password
{
get { return _Password; }
set { _Password = value; }
}

public Mail()
{

_Host=System.Configuration.ConfigurationSettings.AppSettings["SmtpServer"];
_Sender = System.Configuration.ConfigurationSettings.AppSettings["SenderEmail"];
_Password = System.Configuration.ConfigurationSettings.AppSettings["EmailPassword"];
_SenderDisplay = "HuangPu Gate Pass System";

}
private string _MailTo;
private string _Subject;
private string _Body;
private string _MailFrom;
public string MailTo
{
get { return _MailTo; }
set
{
_MailTo = value;
if (_MailTo.EndsWith(","))
{
_MailTo=_MailTo.Substring(0, _MailTo.Length - 1);
}
}
}
public string Subject
{
get { return _Subject; }
set { _Subject = value; }
}
public string Body
{
get { return _Body; }
set { _Body = value; }
}
public string MailFrom
{
get { return _MailFrom; }
set { _MailFrom = value; }
}
private string _SenderDisplay;
public string SenderDisplay
{
get { return _SenderDisplay; }
set { _SenderDisplay = value; }
}
//认证方式发送
public void SendMail()
{
MailMessage message = new MailMessage();
message.Subject = this._Subject;
message.Body = this.Body;
message.From = new MailAddress(this.MailFrom,this._SenderDisplay);
message.IsBodyHtml = true;

try
{
string[] ToAddresses = this._MailTo.Split(',');
foreach (string s in ToAddresses)
{
message.To.Add(s);
}
}
catch { }

SmtpClient client = new SmtpClient();
client.Host = this._Host;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = true;

//仿照outlook的验证方式
//CredentialCache myCache = new CredentialCache();
//myCache.Add(_Host, 25, "login", new NetworkCredential(this._Sender, this._Password));
//client.Credentials = myCache;

client.Credentials = new NetworkCredential(this._Sender, this._Password);

try { client.Send(message); }
catch (Exception ex)
{ string err = ex.Message.Replace("\"", "“"); }
finally { message.Dispose(); }

}


}
}
  • 打赏
  • 举报
回复
在你自己的机器上,打开命令窗口
然后输入命令 telnet 你机器的ip 25
先检查自己机器的25端口是不是开了,
然后telnet 202.152.177.248 25 看这个端口是否开着

再然后看下你连接的isp是否禁掉了25端口

你发到什么类型的邮箱,以及你用什么类型的邮箱发的,这些都有关系,因为有些邮箱不是用的25端口,有些未了防止程序发送,会禁掉某些功能,找一个可以发的邮箱发
pflry2000 2009-03-19
  • 打赏
  • 举报
回复
我大概也能明白是这个意思,只是在服务器上一般是哪里设置或者什么东西会限制到这个?? 谢谢了!
阿云ivan 2009-03-19
  • 打赏
  • 举报
回复
说的很明白呀,就是无法连接邮件服务器呀

应该叫服务器的网管帮助

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧