自己搭建的james服务器,一切皆如普善园的博文http://zhaipuhong.iteye.com/blog/213246
在本机上接受,发送一切正常。
测试程序是用的spring对mail的支持
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.mail.*;
public class TestMail
{
public static void main(String[] args) throws Exception
{
ApplicationContext ctx = new FileSystemXmlApplicationContext("src\\edu\\bjtu\\rjxy\\app\\test\\springMail.xml");
MailSender sender = (MailSender)ctx.getBean("mailSender");
SimpleMailMessage smm = new SimpleMailMessage();
smm.setTo("jkf@localhost");
smm.setFrom("jkfzero@localhost");
smm.setSubject("简单的测试");
smm.setText("这是关于Spring Mail抽象层的简单测试");
// System.out.println("message");
sender.send(smm);
}
}
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<!-- 邮件服务器地址 -->
<value>localhost</value>
</property>
<property name="javaMailProperties">
<props>
<!-- 是否使用用户名密码验证 -->
<prop key="mail.smtp.auth">true</prop>
<!-- -->
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
<!-- 登录邮件服务器的 邮箱 的用户名 -->
<property name="username">
<value>jkfzero</value>
</property>
<!-- 登录邮件服务器的 邮箱 的密码 -->
<property name="password">
<value>jkfzero</value>
</property>
</bean>
</beans>
发送正常。向外网邮箱发送邮件也成功。
然后在公司测试,本机向本机发送,发送,接受正常。
因为公司通过代理上网,采用基本的JMail发送代码测试,在代码中添加
props.put("socksProxyHost", Sender.SOCKS_PROXY);
props.put("socksProxyPort", Sender.SOCKS_PORT);
控制台没有抛出任何异常,显示的发送正常,但是在外网的邮箱没有收到。
再次向本机发送,一切正常。。。
还是不太了解原理,可能代理服务器对代理的类型和域进行了一些限制。
Spring Mail 实战
1288

被折叠的 条评论
为什么被折叠?



