下面是发送的代码(可测试)
//1、创 建 连 接 对 象,连 接 到 邮 箱 服 务 器
Properties props = new Properties();
//开 启 debug 调 试
props.setProperty("mail.debug", "true");
//stmp服 务 器 需 要 进 行 身 份 验 证,也 就 是 用 户 名 和 密 码 的 校 验,这 样 才
能 通 过 验 证
props.setProperty("mail.smtp.auth", "true");
//发 送 邮 件 协 议 名 称
props.setProperty("mail.transport.protocol", "smtp");
//设 置 邮 件服 务 器 主 机 名
props.setProperty("mail.host", hostSend);
//设 端 口 号 (该 配 置 可 写 可 不 写)
props.setProperty("mail.smtp.port", "465");
//授 权 码
props.setProperty("mail.smtp.password", password);
//开 启 S S L 加 密,否 则 会 失 败
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
//解决附件文件名过长的问题
props.put("mail.mime.splitlongparameters", "false");
System.setProperties(props);
//Authenticator:认 证 信 息
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return mAuthenticator.getPasswordAuthentication();
//使 用 它 给 其 他 账 户 发 邮 件
}
});
//下面设置邮件的内容(自行设置)
Message message = new MimeMessage(session);
message.saveChanges();
//3.发 送 邮 件
Transport trans = session.getTransport();
//连 接 邮 件 服 务 器
trans.connect(mAuthenticator.getUsername(), mAuthenticator.getPassword());
//发 送 邮 件
trans.sendMessage(message, message.getAllRecipients());
//关 闭 连 接
trans.close();
//Transport.send(message);(两 种 方 式 都 可 以)
System.out.println("发 送 成 功");
我们需要注意的参数有两个:
props.setProperty("mail.host", hostSend);//我们需要修改服务器的名称 比如163对应 smtp.163.com
props.setProperty("mail.smtp.port", "465");//ssl加密的端口号都是465,所以我们不需要修改