public class MailTest {
public static void main(String[] args) throws Exception {
String localImgUrl = "https://.../1591692476.jpg";
// 构造URL
URL url = new URL(localImgUrl);
// 打开URL连接
// URLConnection con = url.openConnection();
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
// 得到URL的输入流
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyyMMdd");
String strDate = df.format(date);
InputStream input = con.getInputStream();
String directory="/img/"+strDate;
File file = new File(directory);
if (!file.exists()) {
file.mkdirs();
}
String pathName = directory + "/" + localImgUrl.substring(localImgUrl.lastIndexOf("/"));
FileOutputStream fos = new FileOutputStream(pathName);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int length ;
while ((length = input.read()) != -1) {
bos.write(length);
}
//关闭资源
bos.close();
fos.close();
// 收件人电子邮箱
String to = "keehomhua@jidouauto.com";
// 发件人电子邮箱
String from = "noreply@jidouauto.com";
// 指定发送邮件的主机为 smtp.qq.com
String host = "hwhzsmtp.qiye.163.com";
// 获取系统属性
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);
properties.put("mail.smtp.auth", "true");
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", sf);
// 获取默认session对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名、密码
return new PasswordAuthentication("noreply@jidouauto.com", "Jidou123");
}
});
try {
// 创建默认的 MimeMessage 对象
MimeMessage message = new MimeMessage(session);
// Set From: 头部头字段
message.setFrom(new InternetAddress(from));
// Set To: 头部头字段
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// Set Subject: 主题文字
message.setSubject("极豆电子版发票");
// 创建消息部分
MimeBodyPart messageBodyPart = new MimeBodyPart();
// 消息
messageBodyPart.setText("尊敬的用户您好:\n"+"您于2020年XX月XX日申请的00.00元电子发票已开出,请点击附件查看并核对发票明细。");
// 创建多重消息
Multipart multipart = new MimeMultipart();
// 设置文本消息部分
multipart.addBodyPart(messageBodyPart);
// 附件部分
messageBodyPart = new MimeBodyPart();
//设置要发送附件的文件路径
// String filename = "C:/img/123456.png";
//设置附件中显示的文件名,通过filename解析出来
// String receiveName = "测试文件";
DataSource source = new FileDataSource(pathName);
messageBodyPart.setDataHandler(new DataHandler(source));
//messageBodyPart.setFileName(filename);
//处理附件名称中文(附带文件路径)乱码问题
messageBodyPart.setFileName(MimeUtility.encodeText(pathName));
multipart.addBodyPart(messageBodyPart);
// 发送完整消息
message.setContent(multipart);
//保存邮件
message.saveChanges();
// 发送消息
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
}