各位高手,我想问一下,代码和smtp邮箱设置没有错误的情况下,使用smtpmail发送邮件失败究竟是什么原因呢?我上网查了一下,有人说是虚拟空间的SMTP虚拟服务器没有启用,是这样吗?谢谢。
解决方案 »
- 在线等!再问个gridview的问题。弹出提示窗口确认的问题。
- 发布IIS后乱码
- 做过wwf开发的来看下,我的流程为什么一结束,怎么就查询不到流程的信息了,报“Workflow with id {Guid} no found in state persistence store"错
- 防盗链的原理是不是就是判断来路?
- vs2005环境的一个设置问题,求助~!
- 求打印问题如何设计?
- 我在asp.net中,有一个下拉列表的visible要经常为true和false,我想自定义一个事件,当它发生转变时,如何写呀?
- 上传更改的页面到空间就会空间访问不了。空间商向我要啥.net插件。
- VS2005引用DirectShow COM组件的问题。
- 如何在一个iframe中控制另外一个iframe中的web控件的属性?
- 如何在循环记录集时显示单个记录
- 急急...关于ASP。NET安全退出后的问题
http://download.csdn.net/source/2143915我已经把几分设为了0了!
我的smtp代码应该是没有错的,只是想知道是不是SMTP虚拟服务器停用或没有配置好的问题。如果是,要求服务商改他的配置我想不怎么可能了,看看有没有其他解决方法。
{
SiteInfo site = new SiteInfo();
site.Load();
MailMessage mail = new MailMessage();
mail.From = new MailAddress(txtEmail.Text, site.Name);
mail.To.Add(mail.From);
mail.Subject = "Test mail from" + site.Name;
mail.Body = "连接成功";
SmtpClient smtp = new SmtpClient(txtSmtpServer.Text);
smtp.Credentials = new System.Net.NetworkCredential(txtSmtpUsername.Text, txtSmtpPassword.Text);
smtp.EnableSsl = cbEnableSsl.Checked;
smtp.Port = int.Parse(txtSmtpServerPort.Text, CultureInfo.InvariantCulture);
smtp.Send(mail);
lbSmtpStatus.Text = "连接成功。";
lbSmtpStatus.Style.Add(HtmlTextWriterStyle.Color, "green");
}
catch
{
lbSmtpStatus.Text = "连接失败。";
lbSmtpStatus.Style.Add(HtmlTextWriterStyle.Color, "red");
}这段代码在其他服务商是可以运行的,在商务中国的服务器上就用不了,用的都是相同的邮箱,smtp用户名和密码没有错。而SMTP的邮件服务器是否开启就是不确定,问商务中国的技术人员他们看来好像一知半解。郁闷
//如出现:邮箱不可用。 服务器响应为: 5.7.1 Unable to relay for ***@gmail.com
//解决办法如下:在IIS中,右击“默认SMTP虚拟服务器”,选择“属性”,切换到“访问”页,点击“中继”按钮,在弹出框中选择“仅以下列表除外”,确定。
//二:用其它的邮件服务器发送,经测试大多数免费邮箱都不提供SMTP服务,用qq邮箱的就可以,方法:进入qq邮箱-->设置-->帐户-->开通POP3/IMAP/SMTP服务,即可用smtp.qq.com作为邮件服务器了,可用它来发送邮件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.Mail;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
{
System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
client.Send(message);
}
//第一个参数是邮箱服务器
//第二个参数发件人的帐号
//第三个参数发件人密码
//第四个参数收件人帐号
//第五个参数主题
//第六个参数内容.
protected void Button1_Click(object sender, EventArgs e)
{//发送邮件
try
{
//SendSMTPEMail("nz.oicp.net", "[email protected]", "123", "[email protected]", "123", "用asp.net发送邮件,用自己的邮件服务器,测试成功");
SendSMTPEMail("smtp.qq.com", "[email protected]", "123xxxxxxx", "[email protected]", "123", "用asp.net发送邮件,用qq的smtp.qq.com服务器,测试成功"); }
catch (Exception er)
{
Label1.Text = er.Message;
}
}
}