您的当前位置:首页javaemail发送邮件(带附件)

javaemail发送邮件(带附件)

2021-03-10 来源:乌哈旅游
package com.send.email;

import javax.mail.*; import javax.mail.internet.*; import java.util.*; import javax.activation.*; public class SendMail2 {

private String host = \"\"; //smtp服务器 private String from = \"\"; //发件人地址 private String to = \"\"; //收件人地址 private String affix = \"\"; //附件地址 private String affixName = \"\"; //附件名称 private String user = \"\"; //用户名 private String pwd = \"\"; //密码 private String subject = \"\"; //邮件标题

public void setAddress(String from,String to,String subject){ this.from = from; this.to = to;

this.subject = subject; }

public void setAffix(String affix,String affixName){ this.affix = affix;

this.affixName = affixName; }

public void send(String host,String user,String pwd) { this.host = host;

this.user = user; this.pwd = pwd;

Properties props = new Properties();

//设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器) props.put(\"mail.smtp.host\

//需要经过授权,也就是有户名和密码的校验,这样才能通过验证 props.put(\"mail.smtp.auth\

//用刚刚设置好的props对象构建一个session Session session = Session.getDefaultInstance(props);

//有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使 //用(你可以在控制台(console)上看到发送邮件的过程) session.setDebug(true);

//用session为参数定义消息对象

MimeMessage message = new MimeMessage(session); try{

//加载发件人地址

message.setFrom(new InternetAddress(from)); //加载收件人地址

message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); //加载标题

message.setSubject(subject);

// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件 Multipart multipart = new MimeMultipart();

//设置邮件的文本内容

BodyPart contentPart = new MimeBodyPart(); contentPart.setText(\"第二种方法···\"); multipart.addBodyPart(contentPart); //添加附件

BodyPart messageBodyPart= new MimeBodyPart(); DataSource source = new FileDataSource(affix); //添加附件的内容

messageBodyPart.setDataHandler(new DataHandler(source)); //添加附件的标题

//这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码 sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();

messageBodyPart.setFileName(\"=?GBK?B?\"+enc.encode(affixName.getBytes())+\"?=\"); multipart.addBodyPart(messageBodyPart);

//将multipart对象放到message中 message.setContent(multipart); //保存邮件

message.saveChanges(); // 发送邮件

Transport transport = session.getTransport(\"smtp\"); //连接服务器的邮箱

transport.connect(host, user, pwd); //把邮件发送出去

transport.sendMessage(message, message.getAllRecipients()); transport.close(); }catch(Exception e){ e.printStackTrace(); }

}

public static void main(String[] args){ SendMail2 cn = new SendMail2();

//设置发件人地址、收件人地址和邮件标题

cn.setAddress(\"发件人地址\收件人的地址\一个带附件的JavaMail邮件(标题)\"); //设置要发送附件的位置和标题 cn.setAffix(\"附件的路径\文件名称\"); //设置smtp服务器以及邮箱的帐号和密码 cn.send(\"smtp.163.com\邮箱账号\密码\"); } }

因篇幅问题不能全部显示,请点此查看更多更全内容