您好,匿名用户
随意问技术百科期待您的加入

为什么后台用Java发邮件,在本地可以,部署到vps上就不行了?

0 投票

本地ubuntu , vps是centOS
到底是哪里出问题了呢?
试了456端口和25端口都不行……服务器是tomcat
另,服务器上用Python写脚本是可以发邮件的= =!

package util;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class MailSender {

	public void postMail(String recipients[], String subject, String text) {
		// Set the host smtp address
		ResourceBundle rb = ResourceBundle.getBundle("mail");
		String host = rb.getString("smtp");
		int port = 25;
		String from = rb.getString("from");
		// Get system properties
		Properties props = new Properties();
		// Setup mail server
		props.setProperty("mail.smtp.host", host);
		 props.put("mail.smtp.auth","true");
		 props.put("mail.smtp.port", port);
		// Get the default Session object.props.put("mail.smtp.auth", "true");
		Session session = Session.getDefaultInstance(props,
				new javax.mail.Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						ResourceBundle rb = ResourceBundle.getBundle("mail");
						String username = rb.getString("username");
						String password = rb.getString("password");
						return new PasswordAuthentication(username, password);
					}
				});

		try {
			// Create a default MimeMessage object.
			MimeMessage message = new MimeMessage(session);

			// Set the RFC 822 "From" header field using the
			// value of the InternetAddress.getLocalAddress method.
			message.setFrom(new InternetAddress(from));

			// Add the given addresses to the specified recipient type.
			StringBuilder sb = new StringBuilder();
			for (String s : recipients) {
				sb.append(" ");
				sb.append(s);
			}
			message.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse(sb.toString()));

			message.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse(sb.toString()));
			message.setSubject(MimeUtility.encodeText(subject));
			message.setContent(text, "text/html;charset=utf8");
			Date date = new Date();
			message.setSentDate(date);

			Transport.send(message);

			System.out.println("Done");
		} catch (Exception e) {
			e.printStackTrace();
			LogDetail.logexception(e);
		}
	}
}
用户头像 提问 2012年 12月1日 @ Nautilus 上等兵 (223 威望)
分享到:

1个回答

0 投票

问题已经解决了,是缺少了mail相关的配置文件

用户头像 回复 2012年 12月1日 @ Taric 上等兵 (184 威望)
提一个问题:

相关问题

+3 投票
1 回复 86 阅读
用户头像 提问 2013年 2月17日 @ Oracle 上等兵 (238 威望)
+1 投票
0 回复 20 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...