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

您所在的位置:网站首页 发送抄送多人的正确格式范文 javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)

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

#javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)| 来源: 网络整理| 查看: 265

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

JavaMailWithAttachment.java:

private MimeMessage message;

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 * 收件人 多个时参数形式 : "[email protected],[email protected],[email protected]" * @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(Message.RecipientType.CC, 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.ym.163.com mail.smtp.auth = true mail.sender.username = [email protected] mail.sender.password = xxxxx mail.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     

下载地址:http://download.csdn.net/detail/qq741437836/9600110



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3