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.com,xxx@xxx.com,xxx@xxx.com"
- * @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 = xxxx@xxxx.com
- 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