Java发送邮件,带抄送和附件的代码
发布时间:2020-05-24 15:58:37 所属栏目:Java 来源:互联网
导读:Java发送邮件,带抄送和附件的代码
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 import java.io.UnsupportedEncodingException;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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;
public class EmailManager {
private Properties props; //系统属性
private Session session; //邮件会话对象
private MimeMessage mimeMsg; //MIME邮件对象
private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
/**
* Constructor
* @param smtp 邮件发送服务器
*/
public EmailManager(){
props = System.getProperties();
props.put("mail.smtp.auth","false");
session = Session.getDefaultInstance(props,null);
session.setDebug(true);
mimeMsg = new MimeMessage(session);
mp = new MimeMultipart();
}
/**
* Constructor
* @param smtp 邮件发送服务器
*/
public EmailManager(String smtp,String username,String password){
props = System.getProperties();
props.put("mail.smtp.auth","true");
props.put("mail.smtp.host",smtp);
props.put("username",username);
props.put("password",password);
session = Session.getDefaultInstance(props,null);
session.setDebug(true);
mimeMsg = new MimeMessage(session);
mp = new MimeMultipart();
}
/**
* 发送邮件
*/
public boolean sendMail(String from,String[] to,String[] copyto,String subject,String content,String filename) {
try {
//设置发信人
mimeMsg.setFrom(new InternetAddress(from));
//设置接收人
for (int i = 0; i < to.length; i++) {
mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to[i]));
}
//设置抄送人
for (int i = 0; i < copyto.length; i++) {
mimeMsg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(copyto[i]));
}
//设置主题
mimeMsg.setSubject(subject);
//设置正文
BodyPart bp = new MimeBodyPart();
bp.setContent(content,"text/html;charset=utf-8");
mp.addBodyPart(bp);
//设置附件
bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B"));
mp.addBodyPart(bp);
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
//发送邮件
if(props.get("mail.smtp.auth").equals("true")){
Transport transport = session.getTransport("smtp");
transport.connect((String)props.get("mail.smtp.host"),(String)props.get("username"),(String)props.get("password"));
transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC));
transport.close();
}else{
Transport.send(mimeMsg);
}
System.out.println("邮件发送成功");
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
public static void main(String[] args){
String smtp = "smtp.163.com";
String username="[emailprotected]";
String password="xxx";
String from = "[emailprotected]";
String[] to = {"[emailprotected]"};
String[] copyto = {"[emailprotected]"};
String subject = "主题";
String content = "邮件内容";
String filename = "D:xxx.txt";
EmailManager email = new EmailManager(smtp,username,password);
email.sendMail(from,to,copyto,subject,content,filename);
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
