美文网首页
java发送邮件

java发送邮件

作者: 山水风情 | 来源:发表于2017-05-19 00:36 被阅读0次
    
    我这里用的邮箱主要是用来新用户注册信息的时候用来邮件激活的
    
    
    <!-- 发送邮件的maven -->
    <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
    <dependency>
         <groupId>javax.mail</groupId>
         <artifactId>mail</artifactId>
         <version>1.4.7</version>
     </dependency>
    
    <!--发送邮件的gradle-->
    // https://mvnrepository.com/artifact/javax.mail/mail
    compile group: 'javax.mail', name: 'mail', version: '1.4.7'
    
    
    package com.mcin.email;
    
    
    import org.apache.log4j.Logger;
    
    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import java.util.Date;
    import java.util.Properties;
    
    /**
     * Created by Mcin on 2017/5/17.
     * 邮箱发送
     */
    public class Email {
        private static final Logger logger = Logger.getLogger(Email.class);
    
        // 我这里用的是163邮箱
        public static final String HOST = "smtp.163.com"; // 发送邮件的服务器地址
        public static final String PROTOCOL = "smtp"; // 发送邮件的协议
        public static final int PORT = 25;
        public static final String EMAIL_FROM = "发件人的email";//发件人的email
        public static final String EMAIL_PWD = "发件人密码";//发件人密码
    
    
        /**
         * 获取Session
         * @return
         */
        public static Session getSession() {
            Properties props = new Properties();
            props.put("mail.smtp.host", HOST);//设置服务器地址
            props.put("mail.store.protocol" , PROTOCOL);//设置协议
            props.put("mail.smtp.port", PORT);//设置端口
            props.put("mail.smtp.auth" , true);
    
            Authenticator authenticator = new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(EMAIL_FROM, EMAIL_PWD);
                }
            };
            Session session = Session.getDefaultInstance(props , authenticator);
    
            return session;
        }
    
    
    
    
    
        /**
         * 发送邮件信息的内容
         * @param host
         * @param email
         * @param activeCode
         * @param ch
         * @return
         */
        public static String sendEmailcentot(String host,String email,String activeCode,char ch) {
            StringBuffer sb = new StringBuffer("点击下面链接激活账号,48小时内有效,否则重新注册账号,链接只能使用一次,请尽快激活!</br>");
            sb.append("<a href=");
            sb.append(ch);
            sb.append(host);
            sb.append("/home/activeEmail.json?action=activate&email=");
            sb.append(email);
            sb.append("&activeCode=");
            sb.append(activeCode);
            sb.append("\">"+host+"/user/register.json?action=activate&email=");
            sb.append(email);
            sb.append("&activeCode=");
            sb.append(activeCode);
            sb.append("</a>");
            return sb.toString();
        }
    
        /**
         * 发送邮件
         * @param toEmail
         * @param host
         * @return
         */
        public static Integer sendEmail (String toEmail,String host,String activeCode){
            Integer sendResulr = 0;
            char ch = '"';
            String content = sendEmailcentot(host,toEmail,activeCode,ch);
            Session session = getSession();
            try {
                logger.info("--开始发送邮件 --"+"邮箱 == "+toEmail+" : "+content);
                // Instantiate a message
                Message msg = new MimeMessage(session);
    
    
                msg.setFrom(new InternetAddress(EMAIL_FROM));
                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);
                sendResulr = 1 ; //邮件发送成功
            } catch (MessagingException e) {
                logger.error("邮件发送出现异常 ----------- :"+e.getMessage());
                e.printStackTrace();
                 return sendResulr;
            } 
            return sendResulr;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:java发送邮件

          本文链接:https://www.haomeiwen.com/subject/akvexxtx.html