java 发送邮件备忘

废话不说.直接上代码

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" 
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd  ">

    <!-- java mailSender  start -->
    <bean id="mailBaseService" class="com.ybzt.common.mail.impl.MailBaseServiceImpl">
        <!-- 服务器 -->
        <property name="host" value="smtp.163.com" />
        <!-- 端口号 -->
        <property name="port" value="25" />
        <!-- 用户名 -->
        <property name="username" value="[email protected]" />
        <!-- 密码 -->
        <property name="password" value="xxxx" />
        <!-- SMTP服务器验证 -->
        <property name="javaMailProperties">
            <props>
                <!-- 验证身份 -->
                <prop key="mail.smtp.auth">true</prop>
            </props>
        </property>

        <!-- 发件人email -->
        <property name="from" value="[email protected]" />
    </bean>
    <!-- java mailSender  end -->

</beans>

接口类:

package com.ybzt.common.mail;

import java.io.File;

import javax.mail.MessagingException;

import org.springframework.mail.javamail.JavaMailSender;

/**
 * 
 * 
 * @ClassName: IMailBaseService
 * 
 * @Description: 发送邮件服务类
 * 
 * 
 * 
 * 
 */
public interface IMailBaseService extends JavaMailSender {

    /**
     * 
     * @Title:sendMail
     * @Description:发送邮件
     * @param subject
     *            主题
     * @param content
     *            内容
     * @param to
     *            收件人
     * @return void
     */
    public void sendMail(String subject, String content, String[] to) throws MessagingException;

    /**
     * 
     * @Title:sendMail
     * @Description:发送邮件
     * @param subject
     *            主题
     * @param content
     *            内容
     * @param to
     *            收件人
     * @param attachment
     *            附件
     * @return void
     */
    public void sendMail(String subject, String content, String[] to, File attachment) throws MessagingException;

    public void sendMail(String subject, String content, String[] to, File[] attachments) throws MessagingException;
}

实现类:

package com.ybzt.common.mail.impl;

import java.io.File;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.ybzt.common.mail.IMailBaseService;

public class MailBaseServiceImpl extends JavaMailSenderImpl implements IMailBaseService {
    private static Log loger = LogFactory.getLog(MailBaseServiceImpl.class);

    private String from;

    public String getFrom() {
        return from;
    }

    public void setFrom(String from) {
        this.from = from;
    }

    @Override
    public void sendMail(String subject, String content, String[] to) throws MessagingException {
        // 建立邮件消息,发送简单邮件和html邮件的区别
        MimeMessage mailMessage = createMimeMessage();
        // 为防止乱码,添加编码集设置
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, "UTF-8");
        try {
            messageHelper.setFrom(from);
            messageHelper.setSubject(subject); // 设置邮件主题
            messageHelper.setTo(to); // 设定收件人
            messageHelper.setText(content, true); // 设置邮件内容
            send(mailMessage); // 发送邮件
        } catch (MessagingException e) {
            loger.error("发送邮件时出错:" + e);
            throw e;
        }
    }

    @Override
    public void sendMail(String subject, String content, String[] to, File attachment) throws MessagingException {
        // 建立邮件消息,发送简单邮件和html邮件的区别
        MimeMessage mailMessage = createMimeMessage();
        // 为防止乱码,添加编码集设置
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");
        try {
            messageHelper.setFrom(from);
            messageHelper.setSubject(subject); // 设置邮件主题
            messageHelper.setTo(to); // 设定收件人
            messageHelper.setText(content, true); // 设置邮件内容
            // 添加附件的内容
            if (attachment != null) {
                messageHelper.addAttachment(attachment.getName(), attachment);
            }
            send(mailMessage); // 发送邮件
        } catch (MessagingException e) {
            loger.error("发送邮件时出错:" + e);
            throw e;
        }
    }

    @Override
    public void sendMail(String subject, String content, String[] to, File[] attachments) throws MessagingException {
        // 建立邮件消息,发送简单邮件和html邮件的区别
        MimeMessage mailMessage = createMimeMessage();
        // 为防止乱码,添加编码集设置
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");
        try {
            messageHelper.setFrom(from);
            messageHelper.setSubject(subject); // 设置邮件主题
            messageHelper.setTo(to); // 设定收件人
            messageHelper.setText(content, true); // 设置邮件内容
            // 添加附件的内容
            if (attachments != null && attachments.length > 0) {
                for (File attachment : attachments) {
                    messageHelper.addAttachment(attachment.getName(), attachment);
                }
            }
            send(mailMessage); // 发送邮件
        } catch (MessagingException e) {
            loger.error("发送邮件时出错:" + e);
            throw e;
        }
    }

}
<dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.4</version>
    </dependency>

然后在别的service 或者controller 直接调用..

猜你喜欢

转载自blog.csdn.net/qq_29371103/article/details/74370512