各位同仁:最近在维护一个用到javax.mail的项目.有几个问题想请教一下:
现把代码贴出:
ResourceBundle rb = ResourceBundle.getBundle("test.mail");
Properties props = System.getProperties();
props.put("mail.stmp.host", this.SmtpHost);
props.setProperty("proxySet", "true");
props.setProperty("http.proxyHost", "*****");
props.setProperty("http.proxyPort", "8080"); props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, null); MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(this.From)); message.addRecipients(Message.RecipientType.TO, InternetAddress
.parse(this.To));
message.setSubject(this.Title);
message.setContent(this.Content, "text/html;charset=gb2312");
Transport transport = session.getTransport("smtp");
transport.connect(this.SmtpHost, rb.getString("admin.email"),
rb.getString("admin.pwd"));
transport.sendMessage(message, message.getAllRecipients());
transport.close();
问题1,我这边上网是用的代理,在ie里设置的http代理,但是在我用以上代码发送邮件的时候却发不出去,连不上邮件服务器,网上google了一下啊,说用http代理不能发邮件,请各位大侠有这方面经验的帮忙解释一下.问题2.message.setFrom(***)里的邮件是发件人,transport.connect(this.SmtpHost, rb.getString("admin.email"),
rb.getString("admin.pwd"));里的是登录邮件服务器时验证用的名字和密码,请问如果这个邮件名不一致可以么,为什么?请大家不吝赐教,不胜感激!
现把代码贴出:
ResourceBundle rb = ResourceBundle.getBundle("test.mail");
Properties props = System.getProperties();
props.put("mail.stmp.host", this.SmtpHost);
props.setProperty("proxySet", "true");
props.setProperty("http.proxyHost", "*****");
props.setProperty("http.proxyPort", "8080"); props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, null); MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(this.From)); message.addRecipients(Message.RecipientType.TO, InternetAddress
.parse(this.To));
message.setSubject(this.Title);
message.setContent(this.Content, "text/html;charset=gb2312");
Transport transport = session.getTransport("smtp");
transport.connect(this.SmtpHost, rb.getString("admin.email"),
rb.getString("admin.pwd"));
transport.sendMessage(message, message.getAllRecipients());
transport.close();
问题1,我这边上网是用的代理,在ie里设置的http代理,但是在我用以上代码发送邮件的时候却发不出去,连不上邮件服务器,网上google了一下啊,说用http代理不能发邮件,请各位大侠有这方面经验的帮忙解释一下.问题2.message.setFrom(***)里的邮件是发件人,transport.connect(this.SmtpHost, rb.getString("admin.email"),
rb.getString("admin.pwd"));里的是登录邮件服务器时验证用的名字和密码,请问如果这个邮件名不一致可以么,为什么?请大家不吝赐教,不胜感激!
一个英文的,一个翻译的:
http://apicode.gicp.net/class.do?api=selectByfatherIndex&father=255
http://apicodecn.gicp.net/class.do?api=selectByfatherIndex&father=255
问题2:名字不一致大多数不行.因为邮件服务器会验证你的邮件发送人.如果不正确,不给发.
当然,也有些邮件服务器不官这些,就是可以匿名发送。也就是只要是发邮件,不管是谁的,都给发。
mail.smtp.auth 验证你的帐号有没能力发邮件(类似意思)
from和发件人不同 这是服务器内部的设置问题,你没办法去更改(这个可以有效防止垃圾邮件)