spring发送Email

来源:互联网 发布:洗浴软件多少钱 编辑:程序博客网 时间:2024/04/28 04:11

使用spring发送email,支持文件、html、txt等格式。

  • MailBean.java 发送email的格式类

    /** * 本类是主要进行发送E-mail信息。 * @author Jerry * 如果是HTML :<html><head></head><body><h1>hello!!spring html Mail</h1><a href=\"http://www.sina.com\">超级链接</a></body></html> * 请加上http:// 否则URL会失效 */public class MailBean {    private String toEmail;//e-mail目的地    private String fromEmail;//e-mail来源地    private String emailTitle;//邮件标题    private String emailContent;//邮件正文    private File[] sendFiles;//添加附件    //相关配置在properties里    private PropertiesLoader propertiesLoder = new PropertiesLoader("ttcity.properties");    public MailBean(String toEmail, String emailTitle,            String emailContent) {        super();        this.toEmail = toEmail;        this.fromEmail = propertiesLoder.getProperty("mail.username", "cuisongliu@163.com");        this.emailTitle = emailTitle;        this.emailContent = emailContent;    }    public MailBean(String toEmail, String emailTitle,            String emailContent, File[] sendFiles) {        super();        this.toEmail = toEmail;        this.fromEmail = propertiesLoder.getProperty("mail.username", "cuisongliu@163.com");        this.emailTitle = emailTitle;        this.emailContent = emailContent;        this.sendFiles = sendFiles;    }    public String getToEmail() {        return toEmail;    }    public void setToEmail(String toEmail) {        this.toEmail = toEmail;    }    public String getFromEmail() {        return fromEmail;    }    @SuppressWarnings("unused")    private void setFromEmail(String fromEmail) {        this.fromEmail = fromEmail;    }    public String getEmailTitle() {        return emailTitle;    }    public void setEmailTitle(String emailTitle) {        this.emailTitle = emailTitle;    }    public String getEmailContent() {        return emailContent;    }    public void setEmailContent(String emailContent) {        this.emailContent = emailContent;    }    public File[] getSendFiles() {        return sendFiles;    }    public void setSendFiles(File[] sendFiles) {        this.sendFiles = sendFiles;    }}
  • 发送邮件接口

    public interface SendMail {    public JavaMailSender getJavaMailSender();    public MimeMessage getMimeMessage();    /**     * 发送普通的email     * @param mailBean Email的实体类     * @return  true/false 发送成功/失败     * @throws BaseRuntimeException     */    public boolean sendSingleMail(MailBean mailBean)throws IitdevRuntimeException;    /**     * 发送HTML格式的email     * @param mailBean Email的实体类     * @return true/false 发送成功/失败     * @throws BaseRuntimeException     */    public boolean sendHTMLMail(MailBean mailBean)throws IitdevRuntimeException;        /**     * 发送带附件的email     * @param mailBean Email的实体类     * @return true/false 发送成功/失败     * @throws BaseRuntimeException     */    public boolean sendAttachedFileMail (MailBean mailBean)throws IitdevRuntimeException;}
  • 发送邮件的实现类

    public class SendMailImpl implements SendMail {    protected JavaMailSender javaMailSender;    protected MimeMessage mimeMessage;    private Logger log = Logger.getLogger(SendMailImpl.class);    public JavaMailSender getJavaMailSender() {        return javaMailSender;    }    public void setJavaMailSender(JavaMailSender javaMailSender) {        this.javaMailSender = javaMailSender;    }    public MimeMessage getMimeMessage() {        return mimeMessage;    }    public void setMimeMessage(MimeMessage mimeMessage) {        this.mimeMessage = mimeMessage;    }    @Override    public boolean sendSingleMail(MailBean mailBean)            throws IitdevRuntimeException {        SimpleMailMessage mailMessage = new SimpleMailMessage();        try {            mailMessage.setTo(mailBean.getToEmail());            mailMessage.setFrom(mailBean.getFromEmail());            mailMessage.setSubject(mailBean.getEmailTitle());            mailMessage.setText(mailBean.getEmailContent());            javaMailSender.send(mailMessage);        } catch (Exception e) {            log.error("发送失败", e);            return false;        }        return true;    }    @Override    public boolean sendHTMLMail(MailBean mailBean) throws IitdevRuntimeException {        //MimeMessage mailMessage = javaMailSender.createMimeMessage();        // 设置utf-8或GBK编码,否则邮件会有乱码        MimeMessageHelper messageHelper = null;        try {            messageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");            messageHelper.setTo(mailBean.getToEmail());            messageHelper.setFrom(mailBean.getFromEmail());            messageHelper.setSubject(mailBean.getEmailTitle());            // 邮件内容,注意加参数true,表示启用html格式            messageHelper.setText(mailBean.getEmailContent(), true);            javaMailSender.send(mimeMessage);        } catch (Exception e) {            log.error("发送失败", e);            return false;        }        return true;    }    @Override    public boolean sendAttachedFileMail(MailBean mailBean)            throws IitdevRuntimeException {        //MimeMessage mailMessage = javaMailSender.createMimeMessage();        // 设置utf-8或GBK编码,否则邮件会有乱码        MimeMessageHelper messageHelper = null;        try {            messageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");            messageHelper.setTo(mailBean.getToEmail());            messageHelper.setFrom(mailBean.getFromEmail());            messageHelper.setSubject(mailBean.getEmailTitle());            // 邮件内容,注意加参数true,表示启用html格式            messageHelper.setText(mailBean.getEmailContent(), true);            // 遍历文件上传            for (File file : mailBean.getSendFiles()) {                FileSystemResource fsr = new FileSystemResource(file);                messageHelper.addAttachment(file.getName(), fsr);            }            javaMailSender.send(mimeMessage);        } catch (Exception e) {            log.error("发送失败", e);            return false;        }        return true;    }}
  • 相关配置

    <!-- e-amil设置 --><bean id="mimeMessage" class="javax.mail.internet.MimeMessage" factory-bean="javaMailSender"      factory-method="createMimeMessage" /><bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">       <property name="host"> <value>${mail.host}</value></property>       <property name="username"> <value>${mail.username}</value></property>        <property name="password"> <value>${mail.password}</value></property>       <property name="javaMailProperties">           <props>               <prop key="mail.smtp.auth">true</prop>               <prop key="mail.smtp.timeout">25000</prop>               <!-- <prop key="mail.smtp.port">25</prop>               <prop key="mail.smtp.socketFactory.port">25</prop>               <prop key="mail.smtp.socketFactory.fallback">false</prop>               <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>            -->           </props>       </property>   </bean><bean id="sendMail" class="com.base.mail.SendMailImpl">    <property name="javaMailSender" ref="javaMailSender" />     <property name="mimeMessage" ref="mimeMessage" /> </bean>
0 0
原创粉丝点击