java测试smtp连接失败_使用 javamail 连接 SMTP 时的错误

下面的代码希望能给你帮助:public class Mail extends javax.mail.Authenticator {

private String _user;

private String _pass;

private String[] _to;

public String[] get_to() {

return _to;

}

public void set_to(String[] _to) {

this._to = _to;

}

public String get_from() {

return _from;

}

public void set_from(String _from) {

this._from = _from;

}

public String get_subject() {

return _subject;

}

public void set_subject(String _subject) {

this._subject = _subject;

}

private String _from;

private String _port;

private String _sport;

private String _host;

private String _subject;

private String _body;

private boolean _auth;

private boolean _debuggable;

private Multipart _multipart;

public Mail() {

_host = "mail.messagingengine.com"; // default smtp server

_port = "465"; // default smtp port

_sport = "465"; // default socketfactory port

_user = ""; // username

_pass = ""; // password

_from = ""; // email sent from

_subject = ""; // email subject

_body = ""; // email body

_debuggable = false; // debug mode on or off - default off

_auth = true; // smtp authentication - default on

_multipart = new MimeMultipart();

// There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added.

MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();

mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");

mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");

mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");

mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");

mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");

CommandMap.setDefaultCommandMap(mc);

}

public Mail(String user, String pass) {

this();

_user = user;

_pass = pass;

}

public boolean send() throws Exception {

Properties props = _setProperties();

if(!_user.equals("") && !_pass.equals("") && _to.length > 0 && !_from.equals("") && !_subject.equals("") && !_body.equals("")) {

Session session = Session.getInstance(props, this);

MimeMessage msg = new MimeMessage(session);

msg.setFrom(new InternetAddress(_from));

InternetAddress[] addressTo = new InternetAddress[_to.length];

for (int i = 0; i 

addressTo[i] = new InternetAddress(_to[i]);

}

msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);

msg.setSubject(_subject);

msg.setSentDate(new Date());

// setup message body

BodyPart messageBodyPart = new MimeBodyPart();

messageBodyPart.setText(_body);

_multipart.addBodyPart(messageBodyPart);

// Put parts in message

msg.setContent(_multipart);

// send email

Transport.send(msg);

return true;

} else {

return false;

}

}

public void addAttachment(String filename) throws Exception {

BodyPart messageBodyPart = new MimeBodyPart();

DataSource source = new FileDataSource(filename);

messageBodyPart.setDataHandler(new DataHandler(source));

messageBodyPart.setFileName(filename);

_multipart.addBodyPart(messageBodyPart);

}

@Override

public PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(_user, _pass);

}

private Properties _setProperties() {

Properties props = new Properties();

props.put("mail.smtp.host", _host);

if(_debuggable) {

props.put("mail.debug", "true");

}

if(_auth) {

props.put("mail.smtp.auth", "true");

}

props.put("mail.smtp.port", _port);

props.put("mail.smtp.socketFactory.port", _sport);

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

props.put("mail.smtp.socketFactory.fallback", "false");

return props;

}

// the getters and setters

public String getBody() {

return _body;

}

public void setBody(String _body) {

this._body = _body;

}

// more of the getters and setters …..

}

我想错误是在:_port = "465"; // default smtp port

_sport = "465"; // default socketfactory port

和这一行:props.put("mail.messagingengine.com", _host);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值