JAVA开发_发送邮件

来源:互联网 发布:nba2k16捏脸数据大全 编辑:程序博客网 时间:2024/06/10 10:56

获取邮箱

  • 邮件调用入口
/** * mailList  收件箱列表 * subject  主题 * content  正文 */MailSenderFactory.getSender().send(mailList, subject,content);
  • 发件箱工厂
/** * 发件箱工厂 * @author zhufj * @2015-5-29 下午1:36:36 */public class MailSenderFactory {    //服务邮箱    private static SimpleMailSender serviceSms = null;    private static final String host = SpringConfigUtil.getProperties("mail.host");  //smtp地址    private static final String username = SpringConfigUtil.getProperties("mail.username");  //邮箱用户名    private static final String password = SpringConfigUtil.getProperties("mail.password"); //邮箱密码    private static final String fromName = SpringConfigUtil.getProperties("mail.fromName"); //发件人显示名字    private static final String fromAddress = SpringConfigUtil.getProperties("mail.fromAddress");  //邮箱地址    private static final String auth = SpringConfigUtil.getProperties("mail.auth"); //是否需要验证    /**     * 获取邮箱     *      * @param type 邮箱类型     * @return 符合类型的邮箱     */    public static SimpleMailSender getSender() {        if (serviceSms == null) {            serviceSms = new SimpleMailSender(host,username,password,fromName,fromAddress,auth);        }        return serviceSms;    }}
  • 简单邮件发送器
/** * 简单邮件发送器,可单发,群发。 * @author zhufj * @2015-5-29 下午1:37:36 */public class SimpleMailSender {    /**     * 发送邮件的props文件     */    private final transient Properties props = System.getProperties();    /**     * 邮件服务器登录验证     */    private transient MailAuthenticator authenticator;    /**     * 邮箱session     */    private transient Session session;    /**     * 初始化邮件发送器     * @param host  SMTP邮件服务器地址     * @param username  发送邮件的用户名     * @param password  发送邮件的密码     * @param fromName  发件人显示名称     * @param fromAddress   发送邮件的邮箱地址     * @param auth  是否需要验证     */    public SimpleMailSender(final String host, final String username,        final String password, final String fromName,final String fromAddress , final String auth) {        init(host, username,password,fromName,fromAddress,auth);    }    /**     * 初始化     *      * @param host  SMTP邮件服务器地址     * @param username  发送邮件的用户名     * @param password  发送邮件的密码     * @param fromName  发件人显示名称     * @param fromAddress   发送邮件的邮箱地址     * @param auth  是否需要验证     */    private void init(String host, String username, String password, String fromName,String fromAddress, String auth ) {        props.put("mail.smtp.auth", auth); //验证、或不验证        props.put("mail.smtp.host", host);        // 验证        authenticator = new MailAuthenticator(username, password, fromName,fromAddress);        // 创建session        session = Session.getInstance(props, authenticator);    }    /**     * 发送邮件     *      * @param recipient 收件人邮箱地址     * @param subject   邮件主题     * @param content   邮件内容     * @throws AddressException     * @throws MessagingException     * @throws UnsupportedEncodingException      */    public void send(String recipient, String subject, Object content)        throws AddressException, MessagingException, UnsupportedEncodingException {        // 创建mime类型邮件        final MimeMessage message = new MimeMessage(session);        // 设置发信人        message.setFrom(new InternetAddress(authenticator.getFromAddress(),authenticator.getFromName()));        // 设置收件人        message.setRecipient(RecipientType.TO, new InternetAddress(recipient));        // 设置主题        message.setSubject(subject);        // 设置邮件内容        message.setContent(content.toString(), "text/html;charset=utf-8");        // 发送        Transport.send(message);    }    /**     * 群发邮件     *      * @param recipients     收件人们     * @param subject   主题     * @param content   内容     * @throws AddressException     * @throws MessagingException     * @throws UnsupportedEncodingException      */    public void send(List<String> recipients, String subject, Object content)        throws AddressException, MessagingException, UnsupportedEncodingException {        // 创建mime类型邮件        final MimeMessage message = new MimeMessage(session);        // 设置发信人        message.setFrom(new InternetAddress(authenticator.getFromAddress(),authenticator.getFromName()));        // 设置收件人们        final int num = recipients.size();        InternetAddress[] addresses = new InternetAddress[num];        for (int i = 0; i < num; i++) {            addresses[i] = new InternetAddress(recipients.get(i));        }        message.setRecipients(RecipientType.TO, addresses);        // 设置主题        message.setSubject(subject);        // 设置邮件内容        message.setContent(content.toString(), "text/html;charset=utf-8");        // 发送        Transport.send(message);    }}
  • 服务器邮箱登录验证
import javax.mail.Authenticator;import javax.mail.PasswordAuthentication;/** * 服务器邮箱登录验证 * @author zhufj * @2015-5-29 下午1:25:56 */public class MailAuthenticator extends Authenticator {    /**     * 发送邮件的用户名     */    private String username;    /**     * 发送邮件的密码     */    private String password;    /**     * 发件人显示名称     */    private String fromName;    /**     * 发送邮件的邮箱地址     */    private String fromAddress;    /**     * 初始化邮箱和密码     *      * @param username  发送邮件的用户名     * @param password  发送邮件的密码     * @param fromName  发件人显示名称     * @param fromAddress   发送邮件的邮箱地址     */    public MailAuthenticator(String username, String password, String fromName,String fromAddress) {        this.username = username;        this.password = password;        this.fromName = fromName;        this.fromAddress = fromAddress;    }    String getPassword() {        return password;    }    @Override    protected PasswordAuthentication getPasswordAuthentication() {        return new PasswordAuthentication(username, password);    }    String getUsername() {        return username;    }    public void setPassword(String password) {        this.password = password;    }    public void setUsername(String username) {        this.username = username;    }    public String getFromName() {        return fromName;    }    public void setFromName(String fromName) {        this.fromName = fromName;    }    public String getFromAddress() {        return fromAddress;    }    public void setFromAddress(String fromAddress) {        this.fromAddress = fromAddress;    }}
0 0
原创粉丝点击