JAvaバックエンド送信メール情報

4515 ワード

package com.cn.service.util;

import com.alibaba.fastjson.JSON;
import com.smarthome.service.dto.sendEmail.EmailAuthenticator;
import com.smarthome.service.dto.sendEmail.EmailSendInfo;
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 abbott on 2018/9/19.
 */
public class EmailSender {

    private static final Logger LOGGER = Logger.getLogger(EmailSender.class);

    public static boolean sendTextMail(EmailSendInfo mailInfo){
        /**    */
        boolean sendStatus = false;
        /**          **/
        EmailAuthenticator authenticator = null;
        Properties pro = mailInfo.getProperties();
        if (mailInfo.isValidate()) {
            /**        ,          */
            authenticator = new EmailAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
        }
        /**                       session**/
        Session sendMailSession = Session.getInstance(pro, authenticator);
        /**【     】  Session debug  **/
        sendMailSession.setDebug(true);
        try {
            /**  session        **/
            MimeMessage mailMessage = new MimeMessage(sendMailSession);
            /**         **/
            Address from = new InternetAddress(mailInfo.getFromAddress());
            /**          **/
            mailMessage.setFrom(from);
            /**          ,         **/
            Address to = new InternetAddress(mailInfo.getToAddress());
            mailMessage.setRecipient(Message.RecipientType.TO, to);
            /**         **/
            mailMessage.setSubject(mailInfo.getSubject(), "UTF-8");
            /**           **/
            mailMessage.setSentDate(new Date());
            /**           **/
            String mailContent = mailInfo.getContent();
            mailMessage.setText(mailContent, "UTF-8");
            LOGGER.info("---------------------");
            Transport.send(mailMessage);
            LOGGER.info("+++++++++++++++++++++");
            sendStatus = true;
        } catch (MessagingException ex) {
            LOGGER.info("        ");
            ex.printStackTrace();
            return sendStatus;
        }
        return sendStatus;
    }


    public static void main(String[] args) {
        String fromaddr = "QQ  ";//    
        String toaddr = "  ";//      
        String title = "【     】";
        String content = "【    】Hello, this is sample for to check send email using JavaMailAPI ";
        String port = "587";
        String host = "smtp.qq.com";
        String userName = "QQ  "; //    
        String password = "      "; //        

        EmailSendInfo mailInfo = new EmailSendInfo();
        mailInfo.setMailServerHost(host);
        mailInfo.setMailServerPort(port);
        mailInfo.setValidate(true);
        mailInfo.setUserName(userName);
        mailInfo.setPassword(password);
        mailInfo.setFromAddress(fromaddr);
        mailInfo.setToAddress(toaddr);
        mailInfo.setSubject(title);
        mailInfo.setContent(content);

        /**        **/
       new EmailSender().sendTextMail(mailInfo);
    }
}


QQメールボックスPOP 3とSMTPサーバーのアドレスは以下のように設定します.
メールボックス
POP 3サーバ(ポート995)
SMTPサーバ(ポート465または587)
qq.com
pop.qq.com
smtp.qq.com
SMTPサーバには認証が必要です.
qqメールアドレス異常を送信:
   535 Error: ��ʹ����Ȩ���¼�������뿴: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256 javax.mail.AuthenticationFailedException: 535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256 DEBUG SMTP: AUTH LOGIN failed
理由:まだメールボックスにPOP 3/SMTPサービスを開設していないため
解決方法:
メールボックス->設定->アカウントを引いて、POP 3/IMAP/STMTP/Exchange/CArdDAV/CAldDAVサービスを見つけます
オープンサービス:POP 3/SMTPサービス
POP 3/SMTPサービスを開始すると、上のpasswordであるライセンスコードがあります
 
アリクラウドメールサーバー:
サーバ名
アドレス
非SSLプロトコルポート
SSLプロトコルポート番号
POP 
pop3.mxhichina.com
110
995
IMAP 
imap.mxhichina.com
143
993
SMTP 
smtp.mxhichina.com
25
465
網易163メールボックスサービス:
サーバ名
アドレス
非SSLプロトコルポート
SSLプロトコルポート番号
POP 
pop3.163.com
110
995
IMAP 
imap.163.com
143
993
SMTP 
smtp163.com
25
465/994