java的邮件发送代码

来源:互联网 发布:mac电脑分享wifi给手机 编辑:程序博客网 时间:2024/05/20 02:28

配置文件:

package com.nroad.config;import org.apache.commons.configuration.Configuration;import org.apache.commons.configuration.ConfigurationException;import org.apache.commons.configuration.PropertiesConfiguration;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.stereotype.Component;/** * Created by Administrator on 2017/5/19. */@Componentpublic class EmailConfig {    private static Log log = LogFactory.getLog(EmailConfig.class);    private static Configuration configs;    private static String host;     //主机地址,不同服务商的地址不一样,可以百度    private static String proptocol;    //协议,此处使用smtp协议    private static String port;     //端口,不同服务商不一样,可以百度    private static String email;    //发送邮箱账号    private static String password; //发送邮箱密码    static {        EmailConfig.init("emailinfo.properties");    }    private EmailConfig() {    }    public static synchronized void init(String filePath){        if(configs == null){            try {                configs = new PropertiesConfiguration(filePath);            } catch (ConfigurationException e) {                e.printStackTrace();            }        }        if (configs == null){            throw new IllegalStateException("can`t find file by path:" + filePath);        } else {            host = configs.getString("host");            proptocol = configs.getString("proptocol");            port = configs.getString("port");            email = configs.getString("email");            password = configs.getString("password");            log.info("发送邮件配置如下: ");            log.info("配置文件名: "+filePath);            log.info(description());        }    }    private static String description() {        StringBuilder sb =new StringBuilder("Configs:{");        sb.append("主机: ").append(host).append("\n");        sb.append("邮箱协议: ").append(proptocol).append("\n");        sb.append("发送方邮箱: ").append(email).append("\n");        sb.append("发送方密码: ").append("保密").append("\n");        sb.append("}");        return sb.toString();    }//get and set...}

编辑邮件参数以及内容
redirect_uri : 服务器域名以及端口
validateCode:因为我做的是邮箱验证,所以这个是验证码,不用在乎
email:接收方邮箱

  /**     * 向用户邮箱发送激活码     */    public void sendEmail(String redirect_uri, String email, String validateCode){        //邮件的内容        StringBuffer sb = new StringBuffer("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!</br>");        sb.append("<a href=\""+redirect_uri+"?action=activate&email=");        sb.append(email);        sb.append("&validateCode=");        sb.append(validateCode);        sb.append("\">"+redirect_uri+"?action=activate&email=");        sb.append(email);        sb.append("&validateCode=");        sb.append(validateCode);        sb.append("</a>");        //发送邮件        SendEmail.send(email, sb.toString());    }
package com.nroad.common;import com.nroad.config.EmailConfig;import com.nroad.exception.RegisterException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Date;import java.util.Properties;/** * Created by Administrator on 2017/5/8. */public class SendEmail {    private static Log log = LogFactory.getLog(SendEmail.class);    /**     * 发送邮件     * @param toEmail   接收方email     * @param content   发送参数及内容     */    public static void send(String toEmail,String content){        Session session = getSession();        log.info("--send--"+content);        Message msg = new MimeMessage(session);        //发送邮件开始        try {            log.info("发送邮件开始");            msg.setFrom(new InternetAddress(EmailConfig.getEmail()));            InternetAddress[] address = {new InternetAddress(toEmail)};            msg.setRecipients(Message.RecipientType.TO, address);            msg.setSubject("账号激活邮件");            msg.setSentDate(new Date());            msg.setContent(content , "text/html;charset=utf-8");            Transport.send(msg);            log.info("发送邮件结束");        } catch (MessagingException e) {            log.info("发送邮件失败 ");            e.printStackTrace();            throw new RegisterException("发送邮箱失败");        }    }    /**     * 获取Session     * @return     */    private static Session getSession(){        Properties props = new Properties();        props.put("mail.smtp.host", EmailConfig.getHost());//设置服务器地址        props.put("mail.store.protocol" , EmailConfig.getProptocol());//设置协议        props.put("mail.smtp.port", EmailConfig.getPort());//设置端口        props.put("mail.smtp.auth" , true);        Authenticator authenticator = new Authenticator(){            @Override            protected PasswordAuthentication getPasswordAuthentication() {                return new PasswordAuthentication(EmailConfig.getEmail(), EmailConfig.getPassword());            }        };        Session session = Session.getDefaultInstance(props, authenticator);        return session;    }}
原创粉丝点击