用asp.net实现发送邮件时,出现“无法链接到远程服务器”的错误

yanwenqing007 2010-11-03 10:36:36
用asp.net实现发送邮件时,出现“无法链接到远程服务器”的错误
InnerException = {"由于目标机器积极拒绝,无法连接。"}
实在不知道怎么解决了,求个解决的方法! 谢谢~~
...全文
368 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
刀枪blue 2010-12-06
  • 打赏
  • 举报
回复
邮件服务器确定没问题?
wc_dcw 2010-12-06
  • 打赏
  • 举报
回复
/// <summary>
///
/// </summary>
/// <param name="strSmtpServer">SMTP</param>
/// <param name="port">SMTP端口号</param>
/// <param name="strFrom">发信箱地址</param>
/// <param name="strFromPass">发信箱密码</param>
/// <param name="strto">收信箱</param>
/// <param name="strSubject">主题</param>
/// <param name="strBody">邮件正文</param>
/// <param name="ssl">是否采用SSL</param>
public static void SendMail(string strSmtpServer, int port, string strFrom, string strFromPass, string strto, string strSubject, string strBody,bool ssl)
{
System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer, port);
client.EnableSsl = ssl;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
client.Send(message);
}

/// <summary>
/// 发送Jmail邮件
/// </summary>
/// <param name="strSmtpServer"></param>
/// <param name="strFrom"></param>
/// <param name="strFromUser"></param>
/// <param name="strFromPass"></param>
/// <param name="strto"></param>
/// <param name="strSubject"></param>
/// <param name="strBody"></param>
public static void SendJmailMail(string strSmtpServer, string strFrom, string strFromUser, string strFromPass, string strto, string strSubject, string strBody)
{
jmail.Message jmMessage = new jmail.Message();
jmMessage.Silent = true;
jmMessage.Logging = true;
jmMessage.Charset = "GB2312";
jmMessage.ContentType = "text/html";
jmMessage.ISOEncodeHeaders = false;
jmMessage.From = strFrom;
jmMessage.FromName = strFrom;
jmMessage.MailServerUserName = strFromUser;
jmMessage.MailServerPassWord = strFromPass;
jmMessage.Subject = strSubject;
jmMessage.Body = strBody;
jmMessage.AddRecipient(strto, "", "");
jmMessage.Send(strSmtpServer, false);

}


看看这个吧
yanwenqing007 2010-12-06
  • 打赏
  • 举报
回复
SendMail.cs
C# code
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net.Mail;
using System.Net;
/// <summary>
///mail 的摘要说明
/// </summary>


public class SendMail
{
private string sFrom;
private string spass;
public SendMail()
{
sFrom = "sjhd_song@163.com"; //邮箱
spass = "321123"; //密码
}
~SendMail()
{ }

/// <summary> ///根据传入的内容发送邮件。MessageTo接收者。若多个可用";"隔开.MessageSubject邮件主题。MessageBody邮件内容 /// </summary>
public bool SendMails(string MessageTo, string MessageSubject, string MessageBody)
{
try
{
MailAddress from = new MailAddress(sFrom);
MailAddress to = new MailAddress(MessageTo);
MailMessage message = new MailMessage(from, to);
message.Subject = MessageSubject; //发送邮件的标题
message.Body = MessageBody; //发送邮件的内容
message.Priority = MailPriority.High; //发送邮件的优先等级
message.IsBodyHtml = true;
//if (FileUpload1.PostedFile.FileName != "")
//{//发送附件
// Attachment att = new Attachment(FileUpload1.PostedFile.FileName);
// message.Attachments.Add(att);
//}

string strSC = "smtp." + sFrom.Substring(sFrom.IndexOf("@") + 1);

SmtpClient client = new SmtpClient(strSC);
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(sFrom, spass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;

client.Send(message);
return true;
}
catch (InvalidOperationException io)
{
string str = io.Message;
return false;
}
catch (SmtpException se)
{
string str = se.Message;
return false;
}
}
}


我的类是直接放在App_Code下的
调用方法

SendMail st = new SendMail();
st.SendMails(txtEmail.Text.Trim(), title.Text.Trim(), content.Text.Trim());


以上内容是另一位版友提供的,是正解,直接拷贝就能使用!我试过了,正确的
yanwenqing007 2010-12-06
  • 打赏
  • 举报
回复
虽说以上没给我解决问题,还是把分给你们吧!谢谢大家帮助
yanwenqing007 2010-11-03
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Send();
}



public void Send()
{
string mailContent = "邮件内容";

MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add("收件人邮箱"); //收件人

//发件人信息
msg.From = new MailAddress("邮箱", "爱的白痴", System.Text.Encoding.UTF8);
msg.Subject = "这是测试邮件"; //邮件标题
msg.SubjectEncoding = System.Text.Encoding.UTF8; //标题编码
msg.Body = mailContent; //邮件主体
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true; //是否HTML
msg.Priority = MailPriority.High; //优先级

SmtpClient client = new SmtpClient();
//设置GMail邮箱和密码
client.Credentials = new System.Net.NetworkCredential("用户名", "密码");
client.Host = "smtp.163.com";
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;

object userState = msg;
try
{
client.Send(msg);
//MessageBox.Show("发送成功");
Response.Write("发送成功");
Response.End();
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message, "发送邮件出错");
Response.Write(ex.Message+"=="+ex.StackTrace);
Response.End();
}
}

}

我是这样写的,但是就是不对,发送不出去,大家帮忙看看有什么错误!
luobiaoning 2010-11-03
  • 打赏
  • 举报
回复
上面是我做的一个系统 自己用的 调用的是.Net 本身自带的组件
luobiaoning 2010-11-03
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Net;
using System.Net.Mail;
using System.Management;
using System.Runtime.InteropServices;
using System.Collections.Generic;

public void SendMessage(List<EmailTable> toEmails, string subject, string body)
{
MailMessage msg = new MailMessage();
foreach (var email in toEmails)
msg.To.Add(email.EmailUrl);

msg.From = new MailAddress("发送邮件时用服务器名", "名称", Encoding.UTF8);
msg.Subject = subject;
msg.Body = body;
msg.BodyEncoding = Encoding.UTF8;
msg.IsBodyHtml = true;

SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("用户名", "密码");
client.Host = "mail.colorful.cn";
object userToken = null;
try
{
client.SendAsync(msg, userToken);
//Response.Write("Ok");
}
catch (Exception ex)
{
//Response.Write(ex.Message);
}
}



记住页面代码要加一句 Async="true"
如:<%@ Page Language="C#" Async="true" AutoEventWireup="true" CodeBehind="ToEmail.aspx.cs" Inherits="ColorfulMatter.ToEmail" %>

页面调用
// 获得EmailUrl列表,并且发送Email
WebBase wb = new WebBase();
wb.SendMessage(发送的地址, 邮件标题, 内容);
a405833836 2010-11-03
  • 打赏
  • 举报
回复
发送的邮箱要开启POP3/SMTP服务 登录发送邮箱地址设置下
yanwenqing007 2010-11-03
  • 打赏
  • 举报
回复
大家没做过发送邮件的示例吗?俄真的很着急用啊!大家帮帮忙啊!

62,272

社区成员

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

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

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

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