日期:2014-05-17  浏览次数:20714 次

求知识:java发邮件能不能不输入用户名和密码
以apache写法为例
public static void apacheSendEmail() {
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.139.com");// 设置使用发电子邮件的邮件服务器
try {
email.addTo(to);
email.setAuthentication(user, password);
email.setFrom(from);
email.setSubject("Test apache.commons.mail message");
email.setMsg("This is a simple test of commons-email");
email.send();
} catch (EmailException ex) {
ex.printStackTrace();
}

}
能做到不填写用户名和密码?
如果不能,那么平时收的自动广告邮件,自动发缴活邮件,原理的怎么实现的?(一般密码在数据库是加密的,但是JAVA里配置是明文的,系统本身应该不能获取)

------解决方案--------------------
发邮件有个发和收的概念,让你输的密码是发的那一方的密码,收的只需要地址就可以了,不需要输密码。
------解决方案--------------------
发送邮件是一定要密码的,而且每个邮件服务器的规定都不一样,在qq的smtp服务器中,发送人一定要了setFrom一致,但是在其他的,例如新浪、163这些却不用一致。接收邮件比较简单。。