asp.net邮件发送,在线等!!!!!!!!!!!

wangpushuai 2008-11-14 11:37:37
public void SendMail(string strSmtpServer, string UserName, string Password, string strFrom, string strto, string strSubject, string strBody)
{
//生成一个 使用SMTP发送邮件的客户端对象
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(strSmtpServer);
client.Port = 25;

//表示以当前登录用户的默认凭据进行身份验证
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;

//发件人身份验证,否则163 发不了
client.Credentials = new System.Net.NetworkCredential(strFrom, Password);

//发送
client.Send(message);
}

方法调用 提示邮箱不可用
se.SendMail("smtp.126.com", "yaokooyaoshuai", "密码", "yaokooyaoshuai@126.com", toemail, biaoti, neirong);
...全文
474 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianjiaonvhai 2009-06-17
  • 打赏
  • 举报
回复
新的126的邮箱支持嘛,很囧哦,我用以前的126就OK,刚刚注册就不行,是什么原因呢?很囧啊,Yahoo的也不可以是嘛?快来帮帮我啊……
int64 2008-11-14
  • 打赏
  • 举报
回复
新的163已经不支持smtp和pop了,老的163是可以的!
qinhl99 2008-11-14
  • 打赏
  • 举报
回复
你能确定smtp.126.com就可用吗?
你可以ping下其25端口
wsj1983920 2008-11-14
  • 打赏
  • 举报
回复
换个邮箱看看 可能是防火墙的事儿
chinaxc 2008-11-14
  • 打赏
  • 举报
回复
public bool SendMail(string from, string to, string subject, string body, string smthost, string username, string userpass)
{
try
{
string[] strArray = to.Split(new char[] { ',' });
foreach (string str in strArray)
{
MailMessage message = new MailMessage();
message.From = new MailAddress(from);
message.To.Add(new MailAddress(str.Trim()));
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Host = smthost;
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential(username, userpass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(message);
}
return true;
}
catch
{
return false;
}
}




lovestart0927 2008-11-14
  • 打赏
  • 举报
回复
学习了,```````
xuexiziji 2008-11-14
  • 打赏
  • 举报
回复
换一个不是163的油箱,如果不可用,可能是代码问题。
不然就是油箱的问题。
zpcoder 2008-11-14
  • 打赏
  • 举报
回复

http://topic.csdn.net/u/20080301/17/18568a4c-0c34-4bad-b0c5-08bc16a297ef.html
duchong417 2008-11-14
  • 打赏
  • 举报
回复
帮顶。
melon23 2008-11-14
  • 打赏
  • 举报
回复
换一个邮箱呢。

这个我用过的,可以发送的。



<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table id="TABLE1" runat="server" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 393px">
收信:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
主题:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
内容:<asp:TextBox ID="TextBox3" runat="server" Height="154px" TextMode="MultiLine"
Width="336px"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="发送" OnClick="Button1_Click" /></td>
</tr>
</table>

</div>
<table id="Table2" runat="server" border="0" cellpadding="0" cellspacing="0" visible="false">
<tr>
<td align="center" style="width: 400px">
<asp:Label ID="Label1" runat="server" ForeColor="Red" Text="恭喜您,发表成功!"></asp:Label><br />
<asp:Button ID="Button2" runat="server" Text="返回" OnClick="Button2_Click" /></td>
</tr>
</table>
</form>
</body>
</html>





using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;


public partial class sendMail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
////设置发件人信箱,及显示名字
MailAddress from = new MailAddress("lichuan3@126.com", "J.L.C");
//设置收件人信箱,及显示名字
MailAddress to = new MailAddress(TextBox1.Text, "JLC");
//创建一个MailMessage对象
MailMessage oMail = new MailMessage(from, to);

oMail.Subject = TextBox2.Text; //邮件标题
oMail.Body = TextBox3.Text; //邮件内容

oMail.IsBodyHtml = true; //指定邮件格式,支持HTML格式
oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");//邮件采用的编码
oMail.Priority = MailPriority.High;//设置邮件的优先级为高

//发送邮件服务器
SmtpClient client = new SmtpClient();
client.Host = "smtp.126.com"; //指定邮件服务器
client.Credentials = new NetworkCredential("lichuan3@126.com", "jlc3509589934");//指定服务器邮件,及密码

//发送
try
{
client.Send(oMail); //发送邮件
Label1.Text = "恭喜你!邮件发送成功。";
}
catch
{
Label1.Text = "邮件发送失败,检查网络及信箱是否可用。";
}

oMail.Dispose(); //释放资源

TABLE1.Visible = false;
Table2.Visible = true;
}
protected void Button2_Click(object sender, EventArgs e)
{
//返回,继续发送
Response.Redirect(Request.Url.ToString());
TABLE1.Visible = true;
Table2.Visible = false;
}
}
evjen 2008-11-14
  • 打赏
  • 举报
回复
友情帮顶
thousandlin 2008-11-14
  • 打赏
  • 举报
回复
学习
  • 打赏
  • 举报
回复



呵呵,好熟悉的代码。鄙人的愚作。

新的163已经不支持pop3 了。


我的邮箱是2001年注册的。

这个代码是只利用.net的方法发送,你可以参考gmail。


梅子 2008-11-14
  • 打赏
  • 举报
回复
我也写过。好像163的是发不了。其他都能收到。就是在收件箱还是垃圾箱这里有点问题。。。
youli78 2008-11-14
  • 打赏
  • 举报
回复
我发邮件的方法,希望对你有帮助,邮件服务器地址一定要写对不然容易出错

using System.Net.Mail;
public void sendMail(string MailAddressto, string body)
{
MailMessage mailMsg = new MailMessage();
try
{//创建MailMessage对象



//设置发送者的邮件地址
mailMsg.From = new MailAddress("fffff@sina.com");
//设置收件人的邮件地址
mailMsg.To.Add(new MailAddress(MailAddressto));

//设置邮件主题
mailMsg.Subject = "密码找回系统";

//设置邮件内容
mailMsg.Body = "尊敬的用户!您好,您的新密码是" + body + " ,为了您的帐号安全,请您尽快登录进行修改。";



SmtpClient c = new SmtpClient("smtp.sina.com");
c.Send(mailMsg);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}

web-config

<system.net>
<mailSettings>
<smtp from="fffff@sina.com">
<network host="smtp.sina.com" password="密码" port="25" userName="用户名" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
llsen 2008-11-14
  • 打赏
  • 举报
回复
se.SendMail("smtp.126.com", "yaokooyaoshuai", "密码", "yaokooyaoshuai@126.com", toemail, biaoti, neirong);

好像是邮件服务器错了吧

126的邮件服务器也是163吧

se.SendMail("smtp.163.com", "yaokooyaoshuai", "密码", "yaokooyaoshuai@126.com", toemail, biaoti, neirong);
aigoo 2008-11-14
  • 打赏
  • 举报
回复
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)
{

}
protected void Button1_Click(object sender, EventArgs e)
{

MailAddress from = new MailAddress("email@163.com");
MailAddress to = new MailAddress(TextBox3.Text.Trim());
MailMessage ms = new MailMessage(from, to);
ms.Body = "用户名:" + TextBox1.Text + "<br/>密码:" + TextBox2.Text + ";
ms.Subject = "激活";
ms.IsBodyHtml = true;

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.Host = "smtp.163.com";
smtp.Credentials = new System.Net.NetworkCredential("UserName", "Pwd");
smtp.Send(ms);
Server.Transfer("~/Default2.aspx");
}

}
浮生若梦丶 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xuexiziji 的回复:]
换一个不是163的油箱,如果不可用,可能是代码问题。
不然就是油箱的问题。
[/Quote]
up,以前我也是换了个邮箱就ok咯
mjjzg 2008-11-14
  • 打赏
  • 举报
回复
这是常用的收邮件的状态码,你可以每进行一步,接收一次状态码看是否成功
////
状态码 描述
211 System status, or system help reply
系统状态或显示系统帮助。
214 Help message
显示系统帮助,通常用于显示非标准命令的帮助。
220 <domain> Service ready
服务就绪。
221 <domain> Service closing transmission channel
服务关闭了传输通道。
250 Requested mail action okay, completed
所要求的邮件动作完成,可以继续邮件对话。通常在EHLO/HELO命令后会通过“250-”来描述服务器所支持的特性。
251 User not local; will forward to <forward-path>
收件人非本地用户,将转发到 <forward-path>。
354 Start mail input; end with <CRLF>.<CRLF>
开始接收邮件内容输入,以<CRLF>.<CRLF>(即单行一个点)结束输入。
421 <domain> Service not available, closing transmission channel
无法提供正常服务,关闭传输管道。邮件保留在本地,可能会尝试重新投递。通常这种情况发生在服务器遇到问题,必须关闭传输。
450 Requested mail action not taken: mailbox unavailable
所要求的邮件动作无法执行:邮箱不可用。邮件保留在本地,可能会尝试重新投递。通常这种情况发生在邮箱忙或被拒绝等。
451 Requested action aborted: local error in processing
要求动作中断:本地端发生错误。邮件保留在本地,可能会尝试重新投递。通常这种情况发生在系统投递时遇到意外的错误。
452 Requested action not taken: insufficient system storage 要求动作无法执行:系统空间不足。邮件保留在本地,可能会尝试重新投递。通常这种情况发生在邮箱限额满。
500 Syntax error, command unrecognized
命令格式错误,不可识别。当命令行太长时也会发生这样的错误。
501 Syntax error in parameters or arguments
命令参数错误。
502 Command not implemented
命令尚未实现。
503 Bad sequence of commands
错误的命令顺序。
504 Command parameter not implemented
命令的参数尚未实现。
550 Requested action not taken: mailbox unavailable
所要求动作无法执行:信箱不存在。不再尝试投递。
551 User not local; please try <forward-path>
收件人不属于本地用户,转发到<forward-path>。不再尝试投递。
552 Requested mail action aborted: exceeded storage allocation
所要求的动作中断:超出所分配的储存空间。不再尝试投递。
553 Requested action not taken: mailbox name not allowed
所要求的动作未执行:不接受该信箱。通常发生在邮件地址错误、被作为垃圾邮件拒收。不再尝试投递。
554 Transaction failed
传输失败。
//
Adechen 2008-11-14
  • 打赏
  • 举报
回复
换个邮箱看看
加载更多回复(2)

62,046

社区成员

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

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

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

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