James学习笔记

来源:互联网 发布:网络教育专科 编辑:程序博客网 时间:2024/05/22 13:52

   1、 我的项目板块至今已全部完成, 唯一美中不足的便是 我是使用的第三方邮件服务器发送邮件, 也正是因为使用的是第三方邮件服务器而导致了一些小问题, 如: 发送到外站的邮件被视为垃圾邮件、 发送不稳定、 有些邮件服务器不能显示接收到的图片等等。

  如何构造自己的邮件服务器?  使用james...  待尝试

2、 碰到了异常: 不能打开到主机的连接, 在端口4555: 连接失败
    疑问: 那天在学校机房连接成功。

   我在dos下: ping 192.168.0.1:4555  发现端口并没有被占用呀? 当使用 telnet 127.0.0.1 时dos闪到一个新窗口, 上面什么东西都没有只有一个光标在那里闪烁

       我的解决方案:
  将james的解压文件存放在一个纯英文目录下就OK了, 因为之前的路径含有中文

3、 抛出新的异常: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

      如果你用myEclipse进行开发的话,运行时可能会出现以下的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

解决方法:移除myEclipse自带的EE包。
                    但你可能还需要用到EE包里的servlet相关类,那可以从Tomcat的lib文件夹中复制servlet-api.jar到project中,用它来代替EE包,一切OK!
  或

此问题与J2EE的版本有关,将J2EE的版本换成1.4即解决问题。

4、   站内的相关内容都搞定了, 但是往站外发送却遭遇失败, 这又是为什么呢?

       ^_^  ^_^   我向外网发送邮件成功了呀, 但是在外网却被视为垃圾邮件?
    去掉<authRequired>true</authRequired>的注释,用邮件服务器发送邮件必需验证。 这一行很重要哟, 我就是通过注释掉这一行才实现了成功往外站发送邮件的。

——————发送情况记录——————————————————————

   一共试验了三个外网邮箱: 其中被126完好接收,sina与sohu接收不到; 在qq中被视为垃圾邮件

   收到了新浪与搜狐下面样式的回复:

  刚刚收到了sina返回的邮件:
    Hi. This is the James mail server at 680dfef892f84e8.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.  Below
I include the list of recipients and the reason why I was unable to deliver
your message.

52luoman@sina.com
Remote mail server told me: 550 Rejected due to the sending MTA's poor reputation. Please refer http://mail.sina.com.cn/help2/rwmail.html

The original message is attached.

   上网搜索了一下原因, 大致有如下几种声音:

a、 是因为收信邮件服务器对发信邮件服务器的反向dns解析验证,对本地邮件服务器dns做反向解析即可。(一般在分配IP地址的地方做)
现在国外的邮件服务器普遍要求有反向解析,以来确认这台邮件服务器是能够在internet上稳定存在的服务器,而不是打一枪换一地的垃圾源。 

    分析得不错, 但是我不知如何对本地邮件服务器做dns反向解析?  ————————探索中...  ... 

b、 对方服务器认为你是来自动态IP的,所以拒收。

++++++++++++++++++++++++++拓展+++++++++++++++++++++++++++++++++++++++

某些邮件系统拒收来自动态域名邮箱的邮件该如何解决

我的邮件服务器是基于动态域名系统的,每次ADSL拨号后服务器IP就改变了。  
  某些邮箱,如XXX@aol.com的就会拒收来自动态域名服务器的邮件。有没办法使其不拒收呢?

 

   通过设置邮件网关为ISP的帐号可解决此问题.  ————————这下又该如何操作呢?

 

 ————————————————————下面对可以往外发邮件的配置做一下总结————————————

   我之前在网上搜了很多, 有些说了很多, 其实配置还是比较简单的。

  1、 <servernames autodetect="true" autodetectIP="true">把两个true都该为false不让邮件服务器自动侦测ip

  2、 注释掉 <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
            <processor> relay-denied </processor>
            <notice>550 - Requested action not taken: relaying denied</notice>
         </mailet>

  3、 去掉<authRequired>true</authRequired>的注释,用邮件服务器发送邮件必需验证。

   4、 配置DNS Server

  在cmd中用ipconfig /all 命令查看你的dns server ip

  DNS Servers . . . . . . . . . . . : 202.96.209.6

                        192.168.1.1

  添加如下:

  <dnsserver>

    <servers>

    <server>202.96.209.6</server>

    <server>192.168.1.1</server>

  同时设置autodiscover为false

   就这样子就搞定了, 至于发往新浪与搜狐的邮件没有能够成功, 但那已经不是配置的问题(问题分析如上,本人也在探索中)

原创粉丝点击