xp系统下用本机发邮件如何设置SmtpMail.SmtpServer
我把.net sdk 中MailMessage 的示例考出来保存为一个页面。主要代码如下
MailMessage MyMail = new MailMessage();
MyMail.From = sFrom;
MyMail.To = sTo;
MyMail.Subject = sSubject;
MyMail.Body = sBody;
MyMail.Cc = sCc;
MyMail.Bcc = sBcc;
MyMail.UrlContentBase = sUrlContentBase;
MyMail.UrlContentLocation = sUrlContentLocation;
if (txtBodyEncoding.Text == Encoding.UTF7.EncodingName)
MyMail.BodyEncoding = Encoding.UTF7;
else if (txtBodyEncoding.Text == Encoding.UTF8.EncodingName)
MyMail.BodyEncoding = Encoding.UTF8;
else
MyMail.BodyEncoding = Encoding.ASCII;
switch (sBodyFormat.ToUpper())
{
case "HTML":
MyMail.BodyFormat = MailFormat.Html;
break;
default:
MyMail.BodyFormat = MailFormat.Text;
break;
}
switch (sPriority.ToUpper())
{
case "HIGH":
MyMail.Priority = MailPriority.High;
break;
case "LOW":
MyMail.Priority = MailPriority.Low;
break;
default:
MyMail.Priority = MailPriority.Normal;
break;
}
// Build an IList of mail attachments.
if (sAttach != "")
{
char[] delim = new char[] {','};
foreach (string sSubstr in sAttach.Split(delim))
{
MailAttachment MyAttachment = new MailAttachment(sSubstr);
MyMail.Attachments.Add(MyAttachment);
}
}
SmtpMail.SmtpServer = sMailServer;
SmtpMail.Send(MyMail);
我的系统是xp,已经安装了smtp服务,想通过本机发邮件。关于SmtpMail.SmtpServer 文档中是这样描述的:电子邮件中继服务器的名称。如果没有设置 SmtpServer,则使用本地 SMTP 服务器的名称。
当我不设置SmtpServer 时提示发送成功,但是到邮箱中没有收到。如果设置为localhost,就会提示:服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for
请问我该如何设置iis?或者如何修改我的程序?
多谢!
问题点数:100、回复次数:10Top
1 楼godspell(风似冷)回复于 2006-03-07 23:11:29 得分 20
550 5.7.1 Unable to relay for
如果你的机只是动态IP或者局域网IP,可能一些别人的邮箱是收不到的了,因为做了邮箱地址过滤了。。。
最好还是用外网的SMTP服务器吧。。设置一些验证就行了。。Top
2 楼zbxubing(冰)回复于 2006-03-08 09:45:04 得分 0
我的机器是拨号上网的,ip是动态的
这是不能发出的原因吗?
或者那些邮箱把这个ip来的邮件给过滤了?我试了很多邮箱都没有收到。
那么为何会出错呢?
多谢!Top
3 楼zhanqiangz(闲云野鹤-Overriding)回复于 2006-03-08 09:48:27 得分 20
和拨号以及动态ip没有关系,
关掉你的系统防火墙和杀毒软件然后尝试。Top
4 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-03-08 09:50:26 得分 20
查看此目录
C:\Inetpub\mailroot\QueueTop
5 楼jzywh(江大鱼)回复于 2006-03-08 09:54:39 得分 20
MyMail = new MailMessage();
MyMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "0");
//MyMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//MyMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", txtUserName.Text.Trim());
//MyMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", txtPassword.Text.Trim());
MyMail.Subject = this.txtTitle.Text.Trim();
MyMail.From = this.txtMail.Text.Trim();
MyMail.Body = this.txtContent.Text.Trim();
MyMail.BodyFormat = MailFormat.Text;
MyMail.Priority = MailPriority.High;
SmtpMail.SmtpServer = "127.0.0.1";
SmtpMail.Send(MyMail);
Top
6 楼jzywh(江大鱼)回复于 2006-03-08 09:55:13 得分 0
http://jzywh.cnblogs.com/archive/2005/06/09/170783.htmlTop
7 楼isline(缘清)回复于 2006-03-08 10:02:20 得分 20
为防止被当作跳板,大多数邮件服务器都关闭了relay ,所以如果你没有接收邮件的服务器上的mail user 帐号,你的发送邮件服务器必须有一个合法的DNS MX记录和一个固定IP才能与大型邮局互发邮件。Top
8 楼zbxubing(冰)回复于 2006-03-10 15:48:20 得分 0
我换了个2003的系统,在smtp属性访问-〉中继中,加入了自己的ip地址
SmtpMail.SmtpServer = "127.0.0.1";
结果:邮件无法发送到 SMTP 服务器。传输错误代码为 0x800ccc15。服务器响应为 not available
请问这是什么原因?
我只是想把自己机器作为服务器发个邮件出去,没想到还挺麻烦。
谢!Top
9 楼nameone(过客)回复于 2006-03-10 15:59:47 得分 0
机子设置问题Top
10 楼ye_zi(行到水穷处·坐看云起时)回复于 2006-03-10 16:37:09 得分 0
接分Top




