日期:2014-05-20  浏览次数:20680 次

JavaMail邮件发送,可以不经过邮件服务器,直接发送吗?
因为,邮件内容和FROM,TO的都在数据库里,很多条。所以,不可以只用一个FROM地址来设置USER,PASSWORD来通过验证。
是否有直接发送的代码可以参考?


------解决方案--------------------
发送邮件可以不用添from地址,甚至你可以添上1234,发送是不对from地址做校验,from地址的作用是为了对方回复时方便填写。发送邮件必须通过一个指定的smtp,但是可以不对user和password进行校验。
javamail代码很简单
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
Session session = Session.getDefaultInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
message.setSubject("test");
message.setText("hello world!~");

Transport.send(message);

mail.smtp.host是你指定的smtp服务器,如果想校验用户名密码的话Session.getDefaultInstance(props, authenticator);就可以了
------解决方案--------------------
因为,邮件内容和FROM,TO的都在数据库里,很多条。所以,不可以只用一个FROM地址来设置USER,PASSWORD来通过验证。 
是否有直接发送的代码可以参考? 
=============================
显然是不可以的。
发送邮件必须要有一个smtp服务器,通常所用的是linux自带的postfix作为smtp服务器,是否需要认证也是由mailserver配置的。

具体内容可以MSN联系:
luyang1016@hotmail.com

javamail自我感觉已经是非常熟悉了。
------解决方案--------------------
写个循环就是了。
------解决方案--------------------
Sender address rejected: not logged in ??? 

不知到你用的是什么邮件服务器,先详细了解一下它如何配置

标准的smtp服务发送邮件,是一定不会管你from怎么写的,甚至都不用校验登录者。

原理也很简单,你可以用命令行试着发发信,也很简单 具体命令记不得了 网上一搜一大把 呵呵~