使用james的一些困惑

自己搭建的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,bean,xml,Blog)