Rumah > Java > javaTutorial > teks badan

java关于邮件发送的代码示例

Y2J
Lepaskan: 2017-05-06 12:59:10
asal
1168 orang telah melayarinya

本篇文章主要介绍了springMVC发送邮件的简单实现 ,主要是利用利用javax.mail发送邮件,图片与附件都可发送,有兴趣的可以了解一下

利用javax.mail发送邮件,图片与附件都可发送

1,Controller类

package com.web.controller.api;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.service.EmailService;

@Controller
@RequestMapping("api")
public class EmailTaskController {

  private static final Logger logger = LoggerFactory.getLogger(EmailTaskController.class);

  @Resource 
  EmailService emailService;
  
  @RequestMapping("sendEmailTask")
  public void sendEmailTask() {
    logger.info("-------------执行发送邮件START---------------");
      //写入excel
      //insuranceService.excelManage();
      //发邮件
      emailService.emailManage();
    
    logger.info("-------------执行发送邮件END---------------");
    
  }

}
Salin selepas log masuk

2,service类

package com.service.impl;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import com.entity.MailModel;
import com.service.EmailService;
import com.SimpleException;

@Service
public class EmailServiceImpl implements EmailService {
  private static Logger logger = Logger.getLogger(EmailServiceImpl.class);

  private String excelPath = "d://";
  
  @Resource
  private JavaMailSender javaMailSender;
  
  @Resource
  private SimpleMailMessage simpleMailMessage;
  
  @Override
  public void emailManage(){
    MailModel mail = new MailModel();
    //主题
    mail.setSubject("清单"); 
    
    //附件
    Map<String, String> attachments = new HashMap<String, String>();
    attachments.put("清单.xlsx",excelPath+"清单.xlsx");
    mail.setAttachments(attachments);
    
    //内容
    StringBuilder builder = new StringBuilder();
    builder.append("<html><body>你好!<br />");
    builder.append("&nbsp&nbsp&nbsp&nbsp附件是个人清单。<br />");
    builder.append("&nbsp&nbsp&nbsp&nbsp其中人信息;<br />");
    builder.append("</body></html>");
    String content = builder.toString();
    
    mail.setContent(content);
    
    sendEmail(mail);
  }



  /**
   * 发送邮件
   * 
   * @author chenyq
   * @date 2016-5-9 上午11:18:21
   * @throws Exception
   */
  @Override
  public void sendEmail(MailModel mail) {
    // 建立邮件消息
    MimeMessage message = javaMailSender.createMimeMessage();
    
    MimeMessageHelper messageHelper;
    try {
      messageHelper = new MimeMessageHelper(message, true, "UTF-8");
      // 设置发件人邮箱
      if (mail.getEmailFrom()!=null) {
        messageHelper.setFrom(mail.getEmailFrom());
      } else {
        messageHelper.setFrom(simpleMailMessage.getFrom());
      }
      
      // 设置收件人邮箱
      if (mail.getToEmails()!=null) {
        String[] toEmailArray = mail.getToEmails().split(";");
        List<String> toEmailList = new ArrayList<String>();
        if (null == toEmailArray || toEmailArray.length <= 0) {
          throw new SimpleException("收件人邮箱不得为空!");
        } else {
          for (String s : toEmailArray) {
            if (s!=null&&!s.equals("")) {
              toEmailList.add(s);
            }
          }
          if (null == toEmailList || toEmailList.size() <= 0) {
            throw new SimpleException("收件人邮箱不得为空!");
          } else {
            toEmailArray = new String[toEmailList.size()];
            for (int i = 0; i < toEmailList.size(); i++) {
              toEmailArray[i] = toEmailList.get(i);
            }
          }
        }
        messageHelper.setTo(toEmailArray);
      } else {
        messageHelper.setTo(simpleMailMessage.getTo());
      }
      
      // 邮件主题
      if (mail.getSubject()!=null) {
        messageHelper.setSubject(mail.getSubject());
      } else {
        
        messageHelper.setSubject(simpleMailMessage.getSubject());
      }
      
      // true 表示启动HTML格式的邮件
      messageHelper.setText(mail.getContent(), true);
      
      // 添加图片
      if (null != mail.getPictures()) {
        for (Iterator<Map.Entry<String, String>> it = mail.getPictures().entrySet()
            .iterator(); it.hasNext();) {
          Map.Entry<String, String> entry = it.next();
          String cid = entry.getKey();
          String filePath = entry.getValue();
          if (null == cid || null == filePath) {
            throw new RuntimeException("请确认每张图片的ID和图片地址是否齐全!");
          }
          
          File file = new File(filePath);
          if (!file.exists()) {
            throw new RuntimeException("图片" + filePath + "不存在!");
          }
          
          FileSystemResource img = new FileSystemResource(file);
          messageHelper.addInline(cid, img);
        }
      }
      
      // 添加附件
      if (null != mail.getAttachments()) {
        for (Iterator<Map.Entry<String, String>> it = mail.getAttachments()
            .entrySet().iterator(); it.hasNext();) {
          Map.Entry<String, String> entry = it.next();
          String cid = entry.getKey();
          String filePath = entry.getValue();
          if (null == cid || null == filePath) {
            throw new RuntimeException("请确认每个附件的ID和地址是否齐全!");
          }
          
          File file = new File(filePath);
          if (!file.exists()) {
            throw new RuntimeException("附件" + filePath + "不存在!");
          }
          
          FileSystemResource fileResource = new FileSystemResource(file);
          messageHelper.addAttachment(cid, fileResource);
        }
      }
      messageHelper.setSentDate(new Date());
      // 发送邮件
      javaMailSender.send(message);
      logger.info("------------发送邮件完成----------");
      
    } catch (MessagingException e) {
      
      e.printStackTrace();
    }
  }

}
Salin selepas log masuk

MailModel实体类

package com.support.entity;

import java.util.Map;

public class MailModel {
  
  /**
   * 发件人邮箱服务器
   */
  private String emailHost;
  /**
   * 发件人邮箱
   */
  private String emailFrom;

  /**
   * 发件人用户名
   */
  private String emailUserName;

  /**
   * 发件人密码
   */
  private String emailPassword;

  /**
   * 收件人邮箱,多个邮箱以“;”分隔
   */
  private String toEmails;
  /**
   * 邮件主题
   */
  private String subject;
  /**
   * 邮件内容
   */
  private String content;
  /**
   * 邮件中的图片,为空时无图片。map中的key为图片ID,value为图片地址
   */
  private Map<String, String> pictures;
  /**
   * 邮件中的附件,为空时无附件。map中的key为附件ID,value为附件地址
   */
  private Map<String, String> attachments;
  
  
  private String fromAddress;//发送人地址1个
  
  private String toAddresses;//接收人地址,可以为很多个,每个地址之间用";"分隔,比方说450065208@qq.com;lpf@sina.com
  
  private String[] attachFileNames;//附件 

  public String getFromAddress() {
    return fromAddress;
  }

  public void setFromAddress(String fromAddress) {
    this.fromAddress = fromAddress;
  }

  public String getToAddresses() {
    return toAddresses;
  }

  public void setToAddresses(String toAddresses) {
    this.toAddresses = toAddresses;
  }

  public String getSubject() {
    return subject;
  }

  public void setSubject(String subject) {
    this.subject = subject;
  }

  public String getContent() {
    return content;
  }

  public void setContent(String content) {
    this.content = content;
  }

  public String[] getAttachFileNames() {
    return attachFileNames;
  }

  public void setAttachFileNames(String[] attachFileNames) {
    this.attachFileNames = attachFileNames;
  }

  public String getEmailHost() {
    return emailHost;
  }

  public void setEmailHost(String emailHost) {
    this.emailHost = emailHost;
  }

  public String getEmailFrom() {
    return emailFrom;
  }

  public void setEmailFrom(String emailFrom) {
    this.emailFrom = emailFrom;
  }

  public String getEmailUserName() {
    return emailUserName;
  }

  public void setEmailUserName(String emailUserName) {
    this.emailUserName = emailUserName;
  }

  public String getEmailPassword() {
    return emailPassword;
  }

  public void setEmailPassword(String emailPassword) {
    this.emailPassword = emailPassword;
  }

  public String getToEmails() {
    return toEmails;
  }

  public void setToEmails(String toEmails) {
    this.toEmails = toEmails;
  }

  public Map<String, String> getPictures() {
    return pictures;
  }

  public void setPictures(Map<String, String> pictures) {
    this.pictures = pictures;
  }

  public Map<String, String> getAttachments() {
    return attachments;
  }

  public void setAttachments(Map<String, String> attachments) {
    this.attachments = attachments;
  }
  
  
}
Salin selepas log masuk

spring.xml添加配置信息

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd">

  
<!-- 发送邮件 -->
  <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
   <property name="host"> 
   <value>${mail.host}</value> 
   </property> 
   <property name="javaMailProperties"> 
      <props> 
       <prop key="mail.smtp.auth">true</prop> 
       <prop key="mail.smtp.timeout">25000</prop> 
      </props> 
   </property>   
   <property name="username"> 
   <value>${mail.username}</value> 
   </property> 
   <property name="password"> 
   <value>${mail.password}</value> 
   </property> 
   <property name="defaultEncoding"> 
   <value>UTF-8</value> 
   </property> 
  </bean> 
  
  <bean id="simpleMailMessage" class="org.springframework.mail.SimpleMailMessage">
    <property name="from" value="${mail.from}" />
    <property name="subject" value="${mail.subject}" />
     <property name="to" value="${mail.to}" />
    <!--
    <property name="text" value="邮件内容" />
    -->
  </bean>
</beans>
Salin selepas log masuk

dev.properties配置

# email configuration
mail.host=smtp.163.com
mail.username=chenyanqing5945
mail.password=123456

mail.from=chenyanqing5945@163.com#发件人
mail.to=164792930@qq.com#收件人(多个用,隔开)
mail.subject=testEmail #主题
Salin selepas log masuk

【相关推荐】

1. Java免费视频教程

2. Java初级入门视频教程

3. YMP在线手册

Atas ialah kandungan terperinci java关于邮件发送的代码示例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan