请高手帮我看看这个邮件代码哪里有问题,为什么发不出邮件?如果高手有代码请发给我一下(我的E_MAIL:[email protected]).我来参加学习一下.致谢!前台代码:
<%@ 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("[email protected]");
mailMessage.To.Add("[email protected]");
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("[email protected]", "29127463");
try
{
smtpClient.Send(mail);
Label1.Text = "ok";
}
catch
{
Label1.Text = "false";
}
}
}
<%@ 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("[email protected]");
mailMessage.To.Add("[email protected]");
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("[email protected]", "29127463");
try
{
smtpClient.Send(mail);
Label1.Text = "ok";
}
catch
{
Label1.Text = "false";
}
}
}
改为这个试试,asp.net发送邮件,需要验证时,只能用Email地址@以前的帐号,不能用全Email地址.
如果你的邮件一定要以整个email来做验证的话,只有建议用其他邮箱了,如sina等邮箱.
smtpClient.Credentials = new NetworkCredential("[email protected]", "29127463");
--------------------------------------
對於郵箱而言,yaoshun是帳號,而不是[email protected].
發送郵件之前,加一行代碼mailMessage.HtmlBody=strBody;
2.
發送郵件之前,加如下代碼:
mailMessage.Body=strBody;
mailMessage.IsBodyHtml=true;
我按你们上面的说的方法修改了一下.但邮件还是发送不成功.高手再帮我看看,这个代码是什么问题.
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("[email protected]");
mailMessage.To.Add("[email protected]");
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";
}
}
}
mailMessage.IsBodyHtml=true;
我看不到哦````````````
行 45: try
行 46: {
行 47: smtpClient.Send(mail);
行 48: Label1.Text = "ok";
行 49: }
源文件: e:\ls\mail1\Default.aspx.cs 行: 47谢谢黑马王子
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("[email protected]", "密码");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
System.Net.Mail.MailMessage message = new MailMessage("[email protected]","[email protected]", "test","<strong>test</strong>");
message.BodyEncoding = System.Text.Encoding.Default;
message.IsBodyHtml = true;
client.Send(message);
}
}
}
/// 发送邮件
/// </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
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Net.Mail.SmtpFailedRecipientException: 邮箱不可用。 服务器响应为: Local user only or Authentication mechanism源错误:
行 46: try
行 47: {
行 48: smtpClient.Send(mail);
行 49: Label1.Text = "ok";
行 50: }请高手帮忙解决,我需要你们指导。
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);
http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx
我在反思我自己,同时也在对CSDN进行反思了(为什么这个大个论坛就没有发一个能发邮件的代码呢?)
... ...
我現在懷疑兩點:
1. 確認郵箱確實在Mail Server上?
2. 你斷定mail.tontel.com.cn這臺mail server沒把你屏蔽掉?你是否發郵件過多,人家把你屏蔽了?
呵呵。
我有帖子 才发的。你去看看 上以后调试好的。2.0版的有问题。
用web.mail这个 namespace。
http://topic.csdn.net/u/20080321/09/91b4cf12-3ec1-4fd3-92ed-7c74375da80c.html
对路径“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
请各位朋友再帮帮忙。
参考
http://topic.csdn.net/u/20080319/23/a6eb012e-bba8-45f7-b43b-a1d14a8e624d.html