如何用JAVAMAIL发邮件?

fbiboss 2016-08-12 04:36:26
网上找的这代码,发送不成功,好像是连接那就出错了,该怎么用它啊?


import java.io.File;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchProviderException;
import java.util.Date;
import java.util.List;
import java.util.Properties;


import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import javax.mail.Message;


public class MainUtils {

private int port = 25; //smtp协议使用的是25号端口
private String server; // 发件人邮件服务器
private String user; // 使用者账号
private String password; //使用者密码

//构造发送邮件帐户的服务器,端口,帐户,密码
public MainUtils(String server, int port, String user, String passwd) {
this.port = port;
this.user = user;
this.password = passwd;
this.server = server;
}

/**
* email 手机人电子邮箱
* subject 邮件标题
* body 正文内容
* paths 发送的附件路径集合
**/
public void sendEmail(String email, String subject, String body,
String paths) {
Properties props = new Properties();
props.put("mail.smtp.host", server);
props.put("mail.smtp.port", String.valueOf(port));
props.put("mail.smtp.auth", "true");
Transport transport = null;
Session session = Session.getDefaultInstance(props, null);
MimeMessage msg = new MimeMessage(session);
try {
transport = session.getTransport("smtp");
transport.connect(server, user, password); //建立与服务器连接
msg.setSentDate(new Date());
InternetAddress fromAddress = null;
fromAddress = new InternetAddress(user);
msg.setFrom(fromAddress);
InternetAddress[] toAddress = new InternetAddress[1];
toAddress[0] = new InternetAddress(email);
msg.setRecipients(Message.RecipientType.TO, toAddress);
msg.setSubject(subject, "UTF-8"); //设置邮件标题
MimeMultipart multi = new MimeMultipart(); //代表整个邮件邮件
BodyPart textBodyPart = new MimeBodyPart(); //设置正文对象
textBodyPart.setText(body); //设置正文
multi.addBodyPart(textBodyPart); //添加正文到邮件

msg.setContent(multi); //将整个邮件添加到message中
msg.saveChanges();
transport.sendMessage(msg, msg.getAllRecipients()); //发送邮件
transport.close();
} //catch (NoSuchProviderException e) {
// e.printStackTrace();
//}
catch (MessagingException e) {
e.printStackTrace();
} //catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
}
}
...全文
86 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fbiboss 2016-08-12
  • 打赏
  • 举报
回复
是啊,就是发送带附件的邮件,本来里面有一段的,好像是不完整,编译不过去,就删掉了
adfldk 2016-08-12
  • 打赏
  • 举报
回复
你是要完整的实现代码?

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧