今晚不睡觉也要把它解决掉!在线等待!!!
protected void Button1_Click(object sender, EventArgs e)
{
labelSendMailResult.Text = " ";
if (Page.IsValid)
{
MailMessage mailObj = new MailMessage();
// 设置email的 'from '和 'to '的地址
mailObj.From = new MailAddress(inputMailFrom.Text);
mailObj.To.Add(inputMailTo.Text);
mailObj.Subject = inputMailSubject.Text;
mailObj.Body = textBoxMailBody.Text;
// 可选: 对邮件进行加密
// mailObj.BodyEncoding = MailFormat.Base64;
// 可选: 设置邮件的优先级别为高
mailObj.Priority = MailPriority.High;
// 使用SmtpMail对象来发送邮件。
SmtpClient smtp = new SmtpClient();
smtp.Send(mailObj);
labelSendMailResult.Text = "邮件发送成功 From: " + inputMailFrom.Text + "; To: " + inputMailTo.Text;
}
}
======================================================
如上,我写了一个发送邮件的代码,但是发送邮件时,总是报“未指定 SMTP 主机”的错误,请问我这个代码的问题在哪里?谢谢!今晚不睡觉也要把它解决掉!在线等待!!!
[解决办法]
SMTP 主机 一般默认是 当前主机 127.0.0.1
可以到网上找jmail 相关文章。
[解决办法]
up
[解决办法]
可能控制面版里面的邮件要弄一下。
[解决办法]
你的确没指定SMTP 主机,错误出在
SmtpClient smtp = new SmtpClient();
改成
SmtpClient client = new SmtpClient(smtp服务器的地址);
不过这里还有个问题,现在大多数smtp服务器都是有身份验证的,所以你还要加上验证代码才能发送
具体可以参考
http://www.alixixi.com/Dev/Web/ASPNET/aspnet9/2007/200702069878.html
[解决办法]
如果你是用net2.0的话
可以使用下面的代码
string mailServerName = "smtp.21cn.com ";
string from = "amax@21cn.com ";
string to = "amax@21cn.com ";
string subject = "test ";
string body = "hello ";
using (MailMessage message = new MailMessage(from, to, subject, body))
{
//SmtpClient是发送邮件的主体,这个构造函数是告知SmtpClient发送邮件时使用哪个SMTP服务器
System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient(mailServerName);
//构建一个认证实例,这里是smtp服务器的地址
System.Net.NetworkCredential nc = new System.Net.NetworkCredential( "amax@21cn.com ", "****** ");
//将认证实例赋予mailClient 这里是登陆smtp的用户名和密码
mailClient.Credentials = nc;
//千万不要再画蛇添足在“mailClient.Credentials = nc;”语句下再对mailclient.UseDefaultCredentials赋值了,不管是false还是true,都将导致程序运行出错
// 最终的发送方法
mailClient.Send(message);
}
[解决办法]
//构建一个认证实例,这里是smtp服务器的地址
System.Net.NetworkCredential nc = new System.Net.NetworkCredential( "amax@21cn.com ", "****** ");
//将认证实例赋予mailClient 这里是登陆smtp的用户名和密码
mailClient.Credentials = nc;
=============================================================
这个怎么理解啊??
( "amax@21cn.com ", "****** ");星号代表什么呢??
amax@21cn.com 是邮件用户名
******** 是邮件密码
SMTP服务哭一端都需要认证,这个认证默认使用与 POP 相同的用户名和密码,也就是登录邮箱所使用的用户名和密码。
[解决办法]
可以睡觉了。
[解决办法]
好好睡吧:)