2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > javaMail邮件发送功能(多收件人 多抄送人 多密送人 多附件)

javaMail邮件发送功能(多收件人 多抄送人 多密送人 多附件)

时间:2020-01-30 10:28:10

相关推荐

javaMail邮件发送功能(多收件人 多抄送人 多密送人 多附件)

先看源码,再来理解,可以直接使用!

JavaMailWithAttachment.java:

<span style="font-family: Arial, Helvetica, sans-serif;">private MimeMessage message;</span>

private Session session;private Transport transport;private String mailHost = "";private String sender_username = "";private String sender_password = "";private String contentPart_Type = "";private Properties properties = new Properties();/** 初始化方法*/public JavaMailWithAttachment() {try {FileInputStream is=new FileInputStream("E:/workspace1.6/ICRM-H5/src/mailServer.properties");properties.load(is);this.mailHost = properties.getProperty("mail.smtp.host");this.sender_username = properties.getProperty("mail.sender.username");this.sender_password = properties.getProperty("mail.sender.password");this.contentPart_Type = properties.getProperty("mail.contentPart.type");} catch (IOException e) {e.printStackTrace();}session = Session.getInstance(properties);session.setDebug(true); //开启后有调试信息,发布时关闭message = new MimeMessage(session);}/*** 发送邮件* @param subject* 邮件主题* @param sendHtml* 邮件内容* @param toUser* 收件人 多个时参数形式 : "xxx@,xxx@,xxx@"* @param ccUser* 抄送人 同上* @param bccUser* 密送人 同上* @param attachment* 附件*/public void doSendHtmlEmail(String subject, String sendHtml,String toUser, String ccUser, String bccUser, File [] attachment){try {// 发件人InternetAddress from = new InternetAddress(sender_username);message.setFrom(from);// 设置多个收件人地址if(null != toUser && !toUser.isEmpty()){@SuppressWarnings("static-access")InternetAddress[] internetAddressTo = new InternetAddress().parse(toUser);message.setRecipients(Message.RecipientType.TO, internetAddressTo);}// 设置多个抄送地址if(null != ccUser && !ccUser.isEmpty()){@SuppressWarnings("static-access")InternetAddress[] internetAddressCC = new InternetAddress().parse(ccUser);message.setRecipients(, internetAddressCC);}// 设置多个密送地址if(null != bccUser && !bccUser.isEmpty()){@SuppressWarnings("static-access")InternetAddress[] internetAddressBCC = new InternetAddress().parse(bccUser);message.setRecipients(Message.RecipientType.BCC, internetAddressBCC);}// 发送日期message.setSentDate(new Date()); // 邮件主题message.setSubject(subject);// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件Multipart multipart = new MimeMultipart();// 添加邮件正文BodyPart contentPart = new MimeBodyPart();contentPart.setContent(sendHtml, contentPart_Type);multipart.addBodyPart(contentPart);BodyPart attachmentBodyPart = null;// 添加附件的内容if (null != attachment && attachment.length != 0) {for (File file : attachment) {attachmentBodyPart = new MimeBodyPart();DataSource source = new FileDataSource(file);attachmentBodyPart.setDataHandler(new DataHandler(source));//MimeUtility.encodeWord可以避免文件名乱码attachmentBodyPart.setFileName(MimeUtility.encodeWord(file.getName()));multipart.addBodyPart(attachmentBodyPart);}}// 将multipart对象放到message中message.setContent(multipart);// 保存邮件message.saveChanges();// smtp验证transport = session.getTransport("smtp");transport.connect(mailHost, sender_username, sender_password);// 发送transport.sendMessage(message, message.getAllRecipients());System.out.println("发送成功!");} catch (Exception e) {e.printStackTrace();} finally {if (transport != null) {try {transport.close();} catch (MessagingException e) {e.printStackTrace();}}}}

mailServer.properties:

mail.smtp.host = smtp.mail.smtp.auth = truemail.sender.username = xxxx@mail.sender.password = xxxxxmail.contentPart.type = text/html;charset=UTF-8

由于javaMail需要一个Properties来注册Session,因此创建一个Properties来写入javaMail所需要的注册信息

mail.smtp.host 发送方的smtp服务器,现在默认的是网易企业邮箱的smtp服务器,可以根据不同的邮箱进行更改。

mail.smtp.auth 向smtp服务器提交认证

mail.sender.username 发送者邮箱

mail.smtp.password 发送者邮箱密码

还需要两个jar包:activation.jar ,mail.jar

下载地址:/detail/qq741437836/9600110

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。