前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<br />
<asp:TextBox ID="tbTag" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="tbAdv" runat="server" Height="72px" TextMode="MultiLine" Width="206px"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="发送" /> </div>
</form>
</body>
</html>
后台代码:
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;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage mailMessage = new MailMessage();
string strBody;
mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
mailMessage.To.Add("wd3w@163.com");
mailMessage.Subject = "mail.tontel.com.cn";
strBody = "<h2>" + 1 + "</h2><br>";
strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
strBody += "·" + tbAdv.Text;
sendMail(mailMessage);
}
//SendMail
private void sendMail(MailMessage mail)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Host = "mail.tontel.com.cn";
smtpClient.Port = 25;
smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463");
try
{
smtpClient.Send(mail);
Label1.Text = "ok";
}
catch
{
Label1.Text = "false";
}
}
}
26 个解决方案
#1
smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
改为这个试试,asp.net发送邮件,需要验证时,只能用Email地址@以前的帐号,不能用全Email地址.
如果你的邮件一定要以整个email来做验证的话,只有建议用其他邮箱了,如sina等邮箱.
改为这个试试,asp.net发送邮件,需要验证时,只能用Email地址@以前的帐号,不能用全Email地址.
如果你的邮件一定要以整个email来做验证的话,只有建议用其他邮箱了,如sina等邮箱.
#2
1.
smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463");
--------------------------------------
對於郵箱而言,yaoshun是帳號,而不是yaoshun@tontel.com.cn
2.
發送郵件之前,加一行代碼mailMessage.HtmlBody=strBody;
smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463");
--------------------------------------
對於郵箱而言,yaoshun是帳號,而不是yaoshun@tontel.com.cn
2.
發送郵件之前,加一行代碼mailMessage.HtmlBody=strBody;
#3
更正一下
2.
發送郵件之前,加如下代碼:
mailMessage.Body=strBody;
mailMessage.IsBodyHtml=true;
2.
發送郵件之前,加如下代碼:
mailMessage.Body=strBody;
mailMessage.IsBodyHtml=true;
#4
两位老大:
我按你们上面的说的方法修改了一下.但邮件还是发送不成功.高手再帮我看看,这个代码是什么问题.
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;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage mailMessage = new MailMessage();
string strBody;
mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
mailMessage.To.Add("wd3w@163.com");
mailMessage.Subject = "mail.tontel.com.cn";
strBody = "<h2>" + 1 + "</h2><br>";
strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
strBody += "·" + tbAdv.Text;
mailMessage.Body = strBody;
sendMail(mailMessage);
}
//SendMail
private void sendMail(MailMessage mail)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Host = "mail.tontel.com.cn";
smtpClient.Port = 25;
smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
try
{
smtpClient.Send(mail);
Label1.Text = "ok";
}
catch
{
Label1.Text = "false";
}
}
}
我按你们上面的说的方法修改了一下.但邮件还是发送不成功.高手再帮我看看,这个代码是什么问题.
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;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage mailMessage = new MailMessage();
string strBody;
mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
mailMessage.To.Add("wd3w@163.com");
mailMessage.Subject = "mail.tontel.com.cn";
strBody = "<h2>" + 1 + "</h2><br>";
strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
strBody += "·" + tbAdv.Text;
mailMessage.Body = strBody;
sendMail(mailMessage);
}
//SendMail
private void sendMail(MailMessage mail)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Host = "mail.tontel.com.cn";
smtpClient.Port = 25;
smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
try
{
smtpClient.Send(mail);
Label1.Text = "ok";
}
catch
{
Label1.Text = "false";
}
}
}
#5
把錯誤消息貼出來
#6
这句你加了吗?
mailMessage.IsBodyHtml=true;
我看不到哦````````````
mailMessage.IsBodyHtml=true;
我看不到哦````````````
#7
异常详细信息: System.Net.Mail.SmtpException: 服务器不支持安全连接。
源错误:
行 45: try
行 46: {
行 47: smtpClient.Send(mail);
行 48: Label1.Text = "ok";
行 49: }
源文件: e:\ls\mail1\Default.aspx.cs 行: 47
谢谢黑马王子
源错误:
行 45: try
行 46: {
行 47: smtpClient.Send(mail);
行 48: Label1.Text = "ok";
行 49: }
源文件: e:\ls\mail1\Default.aspx.cs 行: 47
谢谢黑马王子
#8
以下代码测试成功。需要SMTP支持,你的163帐号开通了SMTP功能
using System;
using System.Net;
namespace mail {
class app {
static void Main()
{
System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com");
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("fdsa@163.com", "密码");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
System.Net.Mail.MailMessage message = new MailMessage("fdsafd@163.com","4fdsa@qq.com", "test","<strong>test</strong>");
message.BodyEncoding = System.Text.Encoding.Default;
message.IsBodyHtml = true;
client.Send(message);
}
}
}
#9
把你代碼中的smtpClient.EnableSsl = true; 這一句刪除就好了。
#10
服務器不支持SSL,但你代碼中設置EnableSsl為true,所以出錯
#11
/// <summary>
/// 发送邮件
/// </summary>
/// <param name= "strSmtpServer "> smtp地址 </param>
/// <param name= "UserName "> 用户名 </param>
/// <param name= "Password "> 密码 </param>
/// <param name= "strFrom "> 发信人地址 </param>
/// <param name= "strto "> 收信人地址 </param>
/// <param name= "strSubject "> 邮件标题 </param>
/// <param name= "strBody "> 邮件正文 </param>
public static void SendMail(string strSmtpServer, string UserName, string Password, string strFrom, string strto, string strSubject, string strBody, string strFileName)
{
//生成一个 使用SMTP发送邮件的客户端对象
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(strSmtpServer);
//表示以当前登录用户的默认凭据进行身份验证
client.UseDefaultCredentials = true;
//包含用户名和密码
client.Credentials = new System.Net.NetworkCredential(UserName, Password);
//指定如何发送电子邮件。
//Network 电子邮件通过网络发送到 SMTP 服务器。
//PickupDirectoryFromIis 将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。
//SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//建立邮件对象
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject,strBody);
//定义邮件正文,主题的编码方式
message.BodyEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");
message.SubjectEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");
//获取或设置一个值,该值指示电子邮件正文是否为 HTML。
message.IsBodyHtml = false;
//指定邮件优先级
message.Priority = System.Net.Mail.MailPriority.Normal;
//添加附件
//System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@ "f:/baihe.txt ");
if (strFileName != " " && strFileName != null)
{
Attachment data = new Attachment(strFileName);
message.Attachments.Add(data);
}
//发件人身份验证,否则163 发不了
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
//发送
client.Send(message);
}
}
2.0版本的
你看看是不是你的防火墙之类给挡住了
今后建议楼主发帖前,先搜索csdn一下。你这样问题,一搜一大把
下面是1。1 的
#region 发送邮件
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="_UserName">用户名</param>
/// <param name="_Mail">用户注册的电子邮件</param>
/// <param name="_Pwd">用户登录密码</param>
/// <returns>是否发送成功</returns>
public static bool SendMail (string _UserName,string _Mail,string _Pwd)
{
string _adminMail = System.Configuration.ConfigurationSettings.AppSettings["AdminMail"].ToString();
string _adminMailPwd = System.Configuration.ConfigurationSettings.AppSettings["AdminMailPwd"].ToString();
string _adminMailSmtp = System.Configuration.ConfigurationSettings.AppSettings["AdminMailSMTP"].ToString();
string _subject = System.Configuration.ConfigurationSettings.AppSettings["MailSubject"].ToString();
string _body = System.Configuration.ConfigurationSettings.AppSettings["MailBody"].ToString();
MailMessage mailObj = new MailMessage();
mailObj.To = _Mail;
mailObj.From = _adminMail;
mailObj.Subject = _subject;//"您在投资基金网的注册信息";
mailObj.Body = _body.Replace("[UserName]",_UserName).Replace("[Pwd]",_Pwd).Replace("[Br]","<br/>").Replace("[Nbsp]"," ");//"尊敬的用户:<br/> 您好,您的注册信息如下<br/>用户名:" + _UserName + " 密码:" + _Pwd;
mailObj.BodyFormat = MailFormat.Html;
mailObj.Priority = MailPriority.High;
SmtpMail.SmtpServer = _adminMailSmtp;
//mailObj.Attachments.Add(new MailAttachment("c:\\swf\\000.bmp"));
//string[] adminName = _adminMail.Split('@');
///////////////////////////////////FrameWork1.1
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
////设置验证用户名
//mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
////设置验证密码
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
//////////////////////////////////////////////
SmtpMail.Send(mailObj);
return true;
}
#endregion
或者参见 http://www.luckyegg.cn
#12
我把smtpClient.EnableSsl = true删除了.但错误还在发生.错误如下:
邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
源错误:
行 46: try
行 47: {
行 48: smtpClient.Send(mail);
行 49: Label1.Text = "ok";
行 50: }
请高手帮忙解决,我需要你们指导。
邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
源错误:
行 46: try
行 47: {
行 48: smtpClient.Send(mail);
行 49: Label1.Text = "ok";
行 50: }
请高手帮忙解决,我需要你们指导。
#13
服务器需要身份验证
1.1
///////////////////////////////////FrameWork1.1
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
////设置验证用户名
//mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
////设置验证密码
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
//////////////////////////////////////////////
2.0
1.1
///////////////////////////////////FrameWork1.1
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
////设置验证用户名
//mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
////设置验证密码
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
//////////////////////////////////////////////
2.0
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
#14
怪我太差.搞不明白啊.
我只希望各位高手帮我把我上面贴出来的前台和后台代码调试通.在下真的感激不尽.
我只希望各位高手帮我把我上面贴出来的前台和后台代码调试通.在下真的感激不尽.
#15
高手啊!
请帮我调试一下上面的代码吧.我今天就在线等.
致谢!
请帮我调试一下上面的代码吧.我今天就在线等.
致谢!
#16
参考下面的url,在.net1.X和.net2.0的版本:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200609100158553X4&fumcde=
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200609100158553X4&fumcde=
#17
可惜是是VB.NET的代码.我现在需要C#版本的代码啊.
#19
搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好.
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?)
... ...
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?)
... ...
#20
确实应该反思一下自己。我给的那代码为什么没有试过?
我们公司都用那段代码,一年多了都没有问题。
难道让别人给你写完后再把代码发给你? 你干什么呢?
#21
不要怨天尢人,在你上論壇發貼求助的同時就應該做好得不到完美解答的準備。不是你發貼,別人就有義務幫你。更何況幫你的人不少。
談下你的主題,就代碼而言,其實發送郵件無非就這樣,到後來基本是OK的。但郵件發不出去的可能性很多,別光把目光局限在代碼上。
我現在懷疑兩點:
1. 確認郵箱確實在Mail Server上?
2. 你斷定mail.tontel.com.cn這臺mail server沒把你屏蔽掉?你是否發郵件過多,人家把你屏蔽了?
#22
換個郵箱換個smtp試試
#23
兄弟,用1.1版的吧。
呵呵。
我有帖子 才发的。你去看看 上以后调试好的。2.0版的有问题。
用web.mail这个 namespace。
http://topic.csdn.net/u/20080321/09/91b4cf12-3ec1-4fd3-92ed-7c74375da80c.html
呵呵。
我有帖子 才发的。你去看看 上以后调试好的。2.0版的有问题。
用web.mail这个 namespace。
http://topic.csdn.net/u/20080321/09/91b4cf12-3ec1-4fd3-92ed-7c74375da80c.html
#24
非常感谢各位高手、朋友的指点帮助,我用的就是junzhang4008 大侠的代码。我的技术太菜需要学习,但现在确实要解决掉这个问题:
对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
源错误:
行 66: if (strFileName != " " && strFileName != null)
行 67: {
行 68: Attachment data = new Attachment(strFileName);
行 69: message.Attachments.Add(data);
行 70: }
源文件: e:\wwwroot\3CMarket\mail.aspx.cs 行: 68
请各位朋友再帮帮忙。
对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
源错误:
行 66: if (strFileName != " " && strFileName != null)
行 67: {
行 68: Attachment data = new Attachment(strFileName);
行 69: message.Attachments.Add(data);
行 70: }
源文件: e:\wwwroot\3CMarket\mail.aspx.cs 行: 68
请各位朋友再帮帮忙。
#25
其实是行66 引号里面出现了空格
#26
junzhang4008的代码好。
参考
http://topic.csdn.net/u/20080319/23/a6eb012e-bba8-45f7-b43b-a1d14a8e624d.html
参考
http://topic.csdn.net/u/20080319/23/a6eb012e-bba8-45f7-b43b-a1d14a8e624d.html
#1
smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
改为这个试试,asp.net发送邮件,需要验证时,只能用Email地址@以前的帐号,不能用全Email地址.
如果你的邮件一定要以整个email来做验证的话,只有建议用其他邮箱了,如sina等邮箱.
改为这个试试,asp.net发送邮件,需要验证时,只能用Email地址@以前的帐号,不能用全Email地址.
如果你的邮件一定要以整个email来做验证的话,只有建议用其他邮箱了,如sina等邮箱.
#2
1.
smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463");
--------------------------------------
對於郵箱而言,yaoshun是帳號,而不是yaoshun@tontel.com.cn
2.
發送郵件之前,加一行代碼mailMessage.HtmlBody=strBody;
smtpClient.Credentials = new NetworkCredential("yaoshun@tontel.com.cn", "29127463");
--------------------------------------
對於郵箱而言,yaoshun是帳號,而不是yaoshun@tontel.com.cn
2.
發送郵件之前,加一行代碼mailMessage.HtmlBody=strBody;
#3
更正一下
2.
發送郵件之前,加如下代碼:
mailMessage.Body=strBody;
mailMessage.IsBodyHtml=true;
2.
發送郵件之前,加如下代碼:
mailMessage.Body=strBody;
mailMessage.IsBodyHtml=true;
#4
两位老大:
我按你们上面的说的方法修改了一下.但邮件还是发送不成功.高手再帮我看看,这个代码是什么问题.
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;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage mailMessage = new MailMessage();
string strBody;
mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
mailMessage.To.Add("wd3w@163.com");
mailMessage.Subject = "mail.tontel.com.cn";
strBody = "<h2>" + 1 + "</h2><br>";
strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
strBody += "·" + tbAdv.Text;
mailMessage.Body = strBody;
sendMail(mailMessage);
}
//SendMail
private void sendMail(MailMessage mail)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Host = "mail.tontel.com.cn";
smtpClient.Port = 25;
smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
try
{
smtpClient.Send(mail);
Label1.Text = "ok";
}
catch
{
Label1.Text = "false";
}
}
}
我按你们上面的说的方法修改了一下.但邮件还是发送不成功.高手再帮我看看,这个代码是什么问题.
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;
using System.Net.Mail;
using System.Net.NetworkInformation;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage mailMessage = new MailMessage();
string strBody;
mailMessage.From = new MailAddress("yaoshun@tontel.com.cn");
mailMessage.To.Add("wd3w@163.com");
mailMessage.Subject = "mail.tontel.com.cn";
strBody = "<h2>" + 1 + "</h2><br>";
strBody += "<h4>" + tbTag.Text + "</h4><br><hr><br>";
strBody += "·" + tbAdv.Text;
mailMessage.Body = strBody;
sendMail(mailMessage);
}
//SendMail
private void sendMail(MailMessage mail)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Host = "mail.tontel.com.cn";
smtpClient.Port = 25;
smtpClient.Credentials = new NetworkCredential("yaoshun", "29127463");
try
{
smtpClient.Send(mail);
Label1.Text = "ok";
}
catch
{
Label1.Text = "false";
}
}
}
#5
把錯誤消息貼出來
#6
这句你加了吗?
mailMessage.IsBodyHtml=true;
我看不到哦````````````
mailMessage.IsBodyHtml=true;
我看不到哦````````````
#7
异常详细信息: System.Net.Mail.SmtpException: 服务器不支持安全连接。
源错误:
行 45: try
行 46: {
行 47: smtpClient.Send(mail);
行 48: Label1.Text = "ok";
行 49: }
源文件: e:\ls\mail1\Default.aspx.cs 行: 47
谢谢黑马王子
源错误:
行 45: try
行 46: {
行 47: smtpClient.Send(mail);
行 48: Label1.Text = "ok";
行 49: }
源文件: e:\ls\mail1\Default.aspx.cs 行: 47
谢谢黑马王子
#8
以下代码测试成功。需要SMTP支持,你的163帐号开通了SMTP功能
using System;
using System.Net;
namespace mail {
class app {
static void Main()
{
System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com");
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("fdsa@163.com", "密码");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
System.Net.Mail.MailMessage message = new MailMessage("fdsafd@163.com","4fdsa@qq.com", "test","<strong>test</strong>");
message.BodyEncoding = System.Text.Encoding.Default;
message.IsBodyHtml = true;
client.Send(message);
}
}
}
#9
把你代碼中的smtpClient.EnableSsl = true; 這一句刪除就好了。
#10
服務器不支持SSL,但你代碼中設置EnableSsl為true,所以出錯
#11
/// <summary>
/// 发送邮件
/// </summary>
/// <param name= "strSmtpServer "> smtp地址 </param>
/// <param name= "UserName "> 用户名 </param>
/// <param name= "Password "> 密码 </param>
/// <param name= "strFrom "> 发信人地址 </param>
/// <param name= "strto "> 收信人地址 </param>
/// <param name= "strSubject "> 邮件标题 </param>
/// <param name= "strBody "> 邮件正文 </param>
public static void SendMail(string strSmtpServer, string UserName, string Password, string strFrom, string strto, string strSubject, string strBody, string strFileName)
{
//生成一个 使用SMTP发送邮件的客户端对象
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(strSmtpServer);
//表示以当前登录用户的默认凭据进行身份验证
client.UseDefaultCredentials = true;
//包含用户名和密码
client.Credentials = new System.Net.NetworkCredential(UserName, Password);
//指定如何发送电子邮件。
//Network 电子邮件通过网络发送到 SMTP 服务器。
//PickupDirectoryFromIis 将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。
//SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//建立邮件对象
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject,strBody);
//定义邮件正文,主题的编码方式
message.BodyEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");
message.SubjectEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");
//获取或设置一个值,该值指示电子邮件正文是否为 HTML。
message.IsBodyHtml = false;
//指定邮件优先级
message.Priority = System.Net.Mail.MailPriority.Normal;
//添加附件
//System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@ "f:/baihe.txt ");
if (strFileName != " " && strFileName != null)
{
Attachment data = new Attachment(strFileName);
message.Attachments.Add(data);
}
//发件人身份验证,否则163 发不了
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
//发送
client.Send(message);
}
}
2.0版本的
你看看是不是你的防火墙之类给挡住了
今后建议楼主发帖前,先搜索csdn一下。你这样问题,一搜一大把
下面是1。1 的
#region 发送邮件
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="_UserName">用户名</param>
/// <param name="_Mail">用户注册的电子邮件</param>
/// <param name="_Pwd">用户登录密码</param>
/// <returns>是否发送成功</returns>
public static bool SendMail (string _UserName,string _Mail,string _Pwd)
{
string _adminMail = System.Configuration.ConfigurationSettings.AppSettings["AdminMail"].ToString();
string _adminMailPwd = System.Configuration.ConfigurationSettings.AppSettings["AdminMailPwd"].ToString();
string _adminMailSmtp = System.Configuration.ConfigurationSettings.AppSettings["AdminMailSMTP"].ToString();
string _subject = System.Configuration.ConfigurationSettings.AppSettings["MailSubject"].ToString();
string _body = System.Configuration.ConfigurationSettings.AppSettings["MailBody"].ToString();
MailMessage mailObj = new MailMessage();
mailObj.To = _Mail;
mailObj.From = _adminMail;
mailObj.Subject = _subject;//"您在投资基金网的注册信息";
mailObj.Body = _body.Replace("[UserName]",_UserName).Replace("[Pwd]",_Pwd).Replace("[Br]","<br/>").Replace("[Nbsp]"," ");//"尊敬的用户:<br/> 您好,您的注册信息如下<br/>用户名:" + _UserName + " 密码:" + _Pwd;
mailObj.BodyFormat = MailFormat.Html;
mailObj.Priority = MailPriority.High;
SmtpMail.SmtpServer = _adminMailSmtp;
//mailObj.Attachments.Add(new MailAttachment("c:\\swf\\000.bmp"));
//string[] adminName = _adminMail.Split('@');
///////////////////////////////////FrameWork1.1
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
////设置验证用户名
//mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
////设置验证密码
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
//////////////////////////////////////////////
SmtpMail.Send(mailObj);
return true;
}
#endregion
或者参见 http://www.luckyegg.cn
#12
我把smtpClient.EnableSsl = true删除了.但错误还在发生.错误如下:
邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
源错误:
行 46: try
行 47: {
行 48: smtpClient.Send(mail);
行 49: Label1.Text = "ok";
行 50: }
请高手帮忙解决,我需要你们指导。
邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism
源错误:
行 46: try
行 47: {
行 48: smtpClient.Send(mail);
行 49: Label1.Text = "ok";
行 50: }
请高手帮忙解决,我需要你们指导。
#13
服务器需要身份验证
1.1
///////////////////////////////////FrameWork1.1
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
////设置验证用户名
//mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
////设置验证密码
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
//////////////////////////////////////////////
2.0
1.1
///////////////////////////////////FrameWork1.1
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
////设置验证用户名
//mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", adminName[0].ToString());
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", _adminMail);
////设置验证密码
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", _adminMailPwd);
//////////////////////////////////////////////
2.0
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
#14
怪我太差.搞不明白啊.
我只希望各位高手帮我把我上面贴出来的前台和后台代码调试通.在下真的感激不尽.
我只希望各位高手帮我把我上面贴出来的前台和后台代码调试通.在下真的感激不尽.
#15
高手啊!
请帮我调试一下上面的代码吧.我今天就在线等.
致谢!
请帮我调试一下上面的代码吧.我今天就在线等.
致谢!
#16
参考下面的url,在.net1.X和.net2.0的版本:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200609100158553X4&fumcde=
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200609100158553X4&fumcde=
#17
可惜是是VB.NET的代码.我现在需要C#版本的代码啊.
#18
#19
搞了一两天就一个Asp.net(C#)发送邮件的代码也没搞好.
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?)
... ...
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?)
... ...
#20
确实应该反思一下自己。我给的那代码为什么没有试过?
我们公司都用那段代码,一年多了都没有问题。
难道让别人给你写完后再把代码发给你? 你干什么呢?
#21
不要怨天尢人,在你上論壇發貼求助的同時就應該做好得不到完美解答的準備。不是你發貼,別人就有義務幫你。更何況幫你的人不少。
談下你的主題,就代碼而言,其實發送郵件無非就這樣,到後來基本是OK的。但郵件發不出去的可能性很多,別光把目光局限在代碼上。
我現在懷疑兩點:
1. 確認郵箱確實在Mail Server上?
2. 你斷定mail.tontel.com.cn這臺mail server沒把你屏蔽掉?你是否發郵件過多,人家把你屏蔽了?
#22
換個郵箱換個smtp試試
#23
兄弟,用1.1版的吧。
呵呵。
我有帖子 才发的。你去看看 上以后调试好的。2.0版的有问题。
用web.mail这个 namespace。
http://topic.csdn.net/u/20080321/09/91b4cf12-3ec1-4fd3-92ed-7c74375da80c.html
呵呵。
我有帖子 才发的。你去看看 上以后调试好的。2.0版的有问题。
用web.mail这个 namespace。
http://topic.csdn.net/u/20080321/09/91b4cf12-3ec1-4fd3-92ed-7c74375da80c.html
#24
非常感谢各位高手、朋友的指点帮助,我用的就是junzhang4008 大侠的代码。我的技术太菜需要学习,但现在确实要解决掉这个问题:
对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
源错误:
行 66: if (strFileName != " " && strFileName != null)
行 67: {
行 68: Attachment data = new Attachment(strFileName);
行 69: message.Attachments.Add(data);
行 70: }
源文件: e:\wwwroot\3CMarket\mail.aspx.cs 行: 68
请各位朋友再帮帮忙。
对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“c:\windows\system32\inetsrv\tempFile”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
源错误:
行 66: if (strFileName != " " && strFileName != null)
行 67: {
行 68: Attachment data = new Attachment(strFileName);
行 69: message.Attachments.Add(data);
行 70: }
源文件: e:\wwwroot\3CMarket\mail.aspx.cs 行: 68
请各位朋友再帮帮忙。
#25
其实是行66 引号里面出现了空格
#26
junzhang4008的代码好。
参考
http://topic.csdn.net/u/20080319/23/a6eb012e-bba8-45f7-b43b-a1d14a8e624d.html
参考
http://topic.csdn.net/u/20080319/23/a6eb012e-bba8-45f7-b43b-a1d14a8e624d.html