为什么我的程序里使用的smtp只能发送到新浪不能发送到163和126邮箱???

phpxer 2005-07-10 03:11:38
我自己建立的一个校园局域网内的服务器,开着IIS和smtp 邮件服务。

我用Jmail发送注册信件。但是我的注册信件没有任何错误提示发出了,发给校内的邮件服务器的邮件能够收到,发给新浪的邮件也能够收到,但是发给163和126、yahoo的邮件都没有收到,请问这是怎么回事?

而且,我直接在邮件服务器的mailroot/pickup文件夹下的邮件能够发送到任何一个邮件服务器。

我忙了一天了,就是没有解决这个问题。下面我把程序代码贴出来:
On Error Resume Next
Obj.Silent = True
Obj.Logging = True
Obj.Charset = Charset_Type
If Not(LoginName = "" Or LoginPass = "") Then
Obj.MailServerUserName = LoginName '您的邮件服务器登录名
Obj.MailServerPassword = LoginPass '登录密码
End If
Obj.ContentType = Content_Type
Obj.Priority = 1
Obj.From = FromEmail
Obj.FromName = FromName
Obj.AddRecipient Email
Obj.Subject = Topic
Obj.Body = Mailbody
If Err<>0 Then
ErrMsg = ErrMsg & "发送失败!原因:" & Err.Description
ErrNumber = 4
Else
Obj.Send (SMTP)
Obj.ClearRecipients()
If Err<>0 Then
ErrMsg = ErrMsg & "发送失败!原因:" & Err.Description
ErrNumber = 4
Else
Count = Count + 1
ErrMsg = ErrMsg & "发送成功!"
End If
End If

我的同学说这是因为126、163和yahoo把来自我的那种来自未经他们认可的服务器的邮件直接删除了。但是怎么解释我在邮件服务器下的pickup文件夹下去能够接收到的事实?

呜呼,请各位帮我一个答复。
...全文
684 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
andytang03 2005-08-17
  • 打赏
  • 举报
回复

MyMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",sAuthen);
//value=0 代表Anonymous验证方式(不需要验证)
//value=1 代表Basic验证方式(使用basic (clear-text) authentication.
//The configuration sendusername/sendpassword or postusername/postpassword fields are used to specify credentials.)
//Value=2 代表NTLM验证方式(Secure Password Authentication in Microsoft Outlook Express)
这是C#中邮件发送时的验证方式,看看有没有帮助
phpxer 2005-08-10
  • 打赏
  • 举报
回复
还是没有同志们能够解决。呜呼。
chenyun_424 2005-07-22
  • 打赏
  • 举报
回复
oupatch 2005-07-21
  • 打赏
  • 举报
回复
要有SMTP认证
phpxer 2005-07-18
  • 打赏
  • 举报
回复
谢谢各位.我再次试试吧
「已注销」 2005-07-17
  • 打赏
  • 举报
回复
1、您的代码是ASP的 怎么发到.net里来了呵

2、很显然您没加邮箱验证 楼上的用JMAIL给出了例子 您参考一下吧

3、用asp.net倒是很容易 MailMessage很好用
lincai 2005-07-17
  • 打赏
  • 举报
回复
前段时间网易 163,126,netease邮箱停了一晚,楼主不是刚好赶上了吧?

晕死啊,他就这么停一晚,我的信箱再也不能用了,密码错误,而网易泡泡却照样可以上。
phpxer 2005-07-14
  • 打赏
  • 举报
回复
再顶一下。
走过的路过的朋友们,如果您遇到过相同的情况,请说说具体情况。
如果你有建议,请您提示一下。
希望解决这个问题的朋友们,请您帮忙顶一下,留下电子邮件,结帖之后,总结好我邮件通知各位。
karykwan 2005-07-14
  • 打赏
  • 举报
回复
有的邮箱是要加验证的,以下是asp码,自己改下
asp:

Set JMail=Server.CreateObject("JMail.Message")
JMail.Logging=True
JMail.Charset="gb2312"
JMail.ContentType = "text/html"
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
if Request.Form("smtpPW") = "1" then '判断服务器是否需要身份验证
' 身份验证
JMail.MailServerUserName = FromUserID
' 身份验证的用户名
JMail.MailServerPassword = FromUserIDPW
' 身份验证的密码
end if
phpxer 2005-07-14
  • 打赏
  • 举报
回复
dxjhq(毅楊) :
应该不是,因为你直接把合格的eml(邮件文件)放在邮件服务器的投递目录下,能发到163啊
dxjhq 2005-07-14
  • 打赏
  • 举报
回复
是不是163發送郵件時需要一個選項,“服務器需要驗證”。
在outlook裡也是這樣,如果不選擇是發不了的。
phpxer 2005-07-13
  • 打赏
  • 举报
回复
一直就是不行,今天也不行。不是服务器停了一晚的问题。yahoo也存在同样的问题。但是新浪、搜狐以及亿邮都是可以的。
sevenever 2005-07-12
  • 打赏
  • 举报
回复
前段时间网易 163,126,netease邮箱停了一晚,楼主不是刚好赶上了吧?
phpxer 2005-07-12
  • 打赏
  • 举报
回复
问题没有解决,要沉下去了
自己顶一下
phpxer 2005-07-11
  • 打赏
  • 举报
回复
"新浪的邮件能发,163和126、yahoo邮件服务器DNS解析不到有关系":
请问能够仔细讲一下163和126、yahoo邮件服务器DNS解析不到是什么意思么 ?怎么解决这个问题能够给点意见么 ?
小弟再次谢过了。
phpxer 2005-07-11
  • 打赏
  • 举报
回复
我不知道怎么样才能是我的服务器连接到163他们的服务器.估计这个问题跟一个MX解析记录有关系.我再搜查相关的资料,看看能不能解决问题.
Tomgus 2005-07-11
  • 打赏
  • 举报
回复
新浪的邮件能发,说明你程序是对的
问题在你的服务器能否连接到163他们的服务器?
Tomgus 2005-07-10
  • 打赏
  • 举报
回复
新浪的邮件能发,163和126、yahoo邮件服务器DNS解析不到有关系
phpxer 2005-07-10
  • 打赏
  • 举报
回复
没有人搭理?自己先顶一下。
说到发送邮件发送,先提一下SMTP(呵呵,高手就跳过这一段吧!)。 SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 再简单介绍一下名称空间(NameSpace)System.Web.Mail类库所提供的邮件发送的对象、属性和方法 (1)它有三个类:SmtpMail、MailMessage和MailAttachment。这三个对象本文的示例程序代码中都应用到了! 1. MailMessage ,提供属性和方法来创建一个邮件消息对象。(Provides properties and methods for constructing an e-mail message.) 2. MailAttachments – 提供属性和方法来创建一个邮件附件对象。(Provides properties and methods for constructing an e-mail attachment.) 3. SmtpMail – 提供属性和方法通过使用windows 2000 CDOSYS 的消息组件的联合数据对象来发送邮件消息)。(Provides properties and methods for sending messages using the Collaboration Data Objects for Windows 2000 (CDOSYS) message component) (2)各个类的属性。 1.先简单介绍SmtpMail的属性: SmtpServer -- SMTP的地址。 2.主要来介绍MailMessage对象的属性 From -- 发送邮件的地址 To -- 接受邮件的地址 Subject -- 邮件的标题 Priority -- 邮件的优先级(有效值为High,Low,Normal) Attachments -- 返回一个集合,代表附件 Bcc -- 密送地址 Cc -- 抄送地址 Body -- 获取或是设置电子邮件消息的内容 BodyFormat -- 获取或是设置MailFormat的枚举值,此值指定消息体邮件的格式(Html格式、Text格式) Bodyencoding -- 指定消息的编码方式编码(主要有Base64,UUencode) 其他几个不重要的省略。 随便提到密送和抄送的区别:密送就是你群发邮件时收邮件的人无法看到你发给了多少人以及他们的邮件地址,抄送就是群发邮件时收邮件的人则可以看到你发给了多少人以及他们的邮件地址。 (3)SmtpMail类的Send方法,它的目的就是发送邮件,有两个重载方法。 1. SmtpMail.Send("发送邮件的地址","接受邮件的地址","邮件的标题","邮件消息的内容") 这个方法很简单,不适合发送带附件的邮件。 2. SmtpMail.Send(MailMessage) 此方法复杂、灵活,适合发送附件,而且可以设置MailMessage对象的各种属性值。 如果我们用ASP.NET写一个邮件发送程序,那么首先应该如何得到SMTP。有两种方法:第一种方法调用目前知名的邮件服务提供商的SMTP,比如新浪、搜狐、网易的免费电子邮箱SMTP;第二种方法是自己装一个SMTP虚拟服务器,这个在安装IIS时一起装上去的(安装过程就省略了:-) )。 一、在ASP.NET利用知名的邮件服务提供商的SMTP发送邮件 首先需要去他们的邮件站点上注册免费邮箱,因为你要使用邮件服务提供商的SMTP,他们需要对身份进行验证,这样可以避免产生大量的垃圾邮件。假设我们在新浪的邮件站点(mail.sina.com.cn)上注册了一个免费电子邮件,用户名是mysina,密码是chenjie.该帐号为虚构的,请使用自己注册的用户名称和密码代替。我们在新浪的邮件站点获知它的SMTP地址是:smtp.sina.com.cn。我们需要向scucj@126.com(我的邮箱地址)发送邮件。 那么利用ASP.NET(C#)发送邮件的核心代码如下: //核心代码开始 using System.Web.Mail; MailMessage objMailMessage; MailAttachment objMailAttachment; // 创建一个附件对象 objMailAttachment = new MailAttachment( "d://test.txt" );//发送邮件的附件 // 创建邮件消息 objMailMessage = new MailMessage(); objMailMessage.From = "mysina@sina.com";//源邮件地址 objMailMessage.To = "scucj@126.com";//目的邮件地址,也就是发给我哈 objMailMessage.Subject = "邮件发送标题:你好";//发送邮件的标题 objMailMessage.Body = "邮件发送标内容:测试一下是否发送成功!";//发送邮件的内容 objMailMessage.Attachments.Add( objMailAttachment );//将附件附加到邮件消息对象中 //接着利用sina的SMTP发送邮件,需要使用Microsoft .NET Framework SDK v1.1和它以上的版本 //基本权限 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //用户名 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "mysina") ; //密码 objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "chenjie"); /如果没有上述三行代码,则出现如下错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为: 554 : Client host rejected: Access denied //SMTP地址 SmtpMail.SmtpServer = "smtp.sina.com.cn"; //开始发送邮件 SmtpMail.Send( objMailMessage ); //核心代码结束 二、在ASP.NET利用本机的SMTP虚拟服务器的SMTP发送邮件 首先说一下SMTP配置。 (1)右键点击“SMTP虚拟服务器”选择“属性”->在“常规”选项卡中设置“IP地址(P)”,我设置的是192.168.1.100。 (2)选择“访问”选项卡,点击“中继”,选上“仅以下列表”(默认是被选上的),点击“添加”,在“单台计算机”中加入192.168.1.100。 提示,如果没有完成(2),则会出现大家常见的一种错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for scucj@126.com (友情提示一下:错误中的邮件地址有所不同) 然后开始核心代码,其实和方法(一)的差不多。与(一)的主要区别在于:1.SMTP的不同,2.objMailMessage.From中本方法可以随便填写,但是(一)中别随便填写那么利用ASP.NET(C#)发送邮件的核心代码如下: /核心代码开始 using System.Web.Mail; MailMessage objMailMessage; MailAttachment objMailAttachment; // 创建一个附件对象 objMailAttachment = new MailAttachment( "d://test.txt" );//发送邮件的附件 // 创建邮件消息 objMailMessage = new MailMessage(); objMailMessage.From = "mysina@sina.com";//源邮件地址 objMailMessage.To = "scucj@126.com";//目的邮件地址,也就是发给我哈 objMailMessage.Subject = "邮件发送标题:你好";//发送邮件的标题 objMailMessage.Body = "邮件发送标内容:测试一下是否发送成功!";//发送邮件的内容 objMailMessage.Attachments.Add( objMailAttachment );//将附件附加到邮件消息对象中 //SMTP地址 SmtpMail.SmtpServer = "192.168.1.100"; //开始发送邮件 SmtpMail.Send( objMailMessage ); 以上两种方法介绍到这。最简单的利用上面方法是在页面添加一个服务器按钮,把除引用的语句放到按钮单击事件中去。当然,别忘记了引用的语句放在最上面。 方法一的测试是完全正确,没有任何问题,但是方法二却导致邮件无法正确收到(***@sina.com),或者收到后也被放到垃圾邮件中去了(发往scucj@126.com)。
********************欢迎使用该小小的邮件管理系统******************** 一、功能: (1)在你的邮箱支持POP3服务的前提下,你可以登自己的邮箱进行邮件管理! 1、用户登录设置 2、登录邮箱 3、收邮件 4、新建邮件 5、阅读邮件(不完善) 6、回复 7、删除邮件 8、导出eml文件----打开该eml文件 9、下载附件 10、注销 (2)不登录自己的邮箱,而直接使用该客户软件新建邮件,不过要手动设置自己的SMTP服务器,然后再发送邮件! 1、SMTP服务器设置 2、写邮件 3、群发邮件 二、设置技巧 (1)本系统的实现首先需要下载mail.jar包和activation.jar包,然后添加到本项目中(方法:直接在项目点“库”--->添加JAR/文件夹...-->把刚才的两个JAR包直接添加进来即可)。 (2)开启自己邮箱的POP3服务:首先在WEB方式下登录自己的邮箱,在设置中查找POP3/SMTP服务的选项,进而开启自己的POP3/SMTP服务。 (3)教你一招:根据域名查询SMTP服务器 在DOS命令行中输入:nslookup 接着输入:set type=mx 再输入:@后面的主机名(即邮箱域名),即可返回SMTP服务器的主机名 还可以输入:set type=a 再输入:返回的SMTP服务器的主机名,便可以得到它的IP地址 (4)再教你一招:借助Telnet程序手工收发邮件 发:telnet smtp.163.com 25(默认的SMTP服务器端口为25) 之后的过程这不详细说明,大家可以自己去查一些资料; 收:telnet pop3.163.com 110(默认的POP3服务器端口为110) 一样这由大家去查查资料; 总之,这些过程就是邮件收发的底层的通信过程,通俗易懂,但由于一些安全的因素,底层这样直接的通信已越来越被受限制,因此底层的通信极不易成功,这也是本系统采用高层JavaMail API的原因之一。 (5) 一些常用邮箱的POP3与SMTP服务器设置 163邮箱 http://mail.163.com POP3服务器:POP.163.COM 或 POP3.163.COM SMTP服务器:SMTP.163.COM QQ邮箱 http://mail.qq.com POP3服务器:pop.qq.com SMTP服务器:smtp.qq.com Gmail邮箱 http://gmail.google.com 要在Gmail帐户中启用POP,首先登录到Gmail帐户。点击任一Gmail页顶部的设置,点击橙色框邮件设置中的转发和POP。 POP3服务器:pop.gmail.com SMTP服务器:smtp.gmail.com Tom邮箱 http://mail.tom.com POP3服务器:pop.tom.com SMTP服务器:smtp.tom.com 搜狐邮箱 http://mail.sohu.com POP3服务器:pop3.sohu.com 或 pop.sohu.com SMTP服务器:smtp.sohu.com 新浪邮箱 http://mail.sina.com.cn POP3服务器:pop.sina.com 或 pop3.sina.com SMTP服务器:smtp.sina.com 重庆交通大学WEB邮箱 http://mail.cquc.edu.cn POP3服务器:pop3.cquc.edu.cn SMTP服务器:smtp.cquc.edu.cn 雅虎邮箱 http://cn.mail.yahoo.com POP3服务器:pop.mail.yahoo.com.cn SMTP服务器:smtp.mail.yahoo.com.cn 网易188财富邮 http://www.188.com POP3服务器:pop.188.com SMTP服务器:smtp.188.com 126邮箱 http://www.126.com 126免费邮箱目前不直接开放smtp、pop3,但是对于126至尊邮开放pop3和smtp POP3服务器:pop.vip.126.com SMTP服务器:smtp.vip.126.com 21cn邮箱 http://mail.21cn.com 21cn商务邮箱 pop3服务器:pop.21cn.net smtp服务器:smtp.21cn.net 21cn经济邮箱 pop3服务器:pop.21cn.com smtp服务器:smtp.21cn.com 21cn免费邮箱 pop3服务器:p

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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