javax.mail 호출 기업 메 일 로 메 일 보 내기

17934 단어 자바
프로젝트 에 추 가 된 기능 은 방금 만 들 었 고 직접 측정 한 것 도 큰 손 해 를 보 았 다.주의해 야 할 몇 가지:
1.smpt,pop 3 와 imap 서비스 가 열 렸 는 지 확인 합 니 다.제 가 사용 하 는 163 무료 기업 메 일 은 기본적으로 열 립 니 다.
2.검사 가방,충돌 할 수 없습니다.그리고 자바 x.mail-xxx.jar 는 자바 x.mail-api-xxx.jar 가 아 닙 니 다.
3.다른 것 은 인증 류 를 반드시 추가 한 다음 에'mail.smtp.auth','true',기본 값 은 인증 을 사용 해 야 합 니 다.
잔말 말고 코드 를 달 아 라.
첫 번 째 클래스(검증 클래스)
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class MyAuthenticator extends Authenticator{

    String userName = null;
    String password = null;

    public MyAuthenticator() {}

    public PasswordAuthentication performCheck(String user, String pass){
        userName = user;
        password = pass;
        return getPasswordAuthentication();
    }

    protected PasswordAuthentication getPasswordAuthentication(){
        return new PasswordAuthentication(userName, password);
    }
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
두 번 째 클래스(메 일 정보 클래스)
import java.util.Properties;

public class MailSenderInfo{
    //           
    private String mailServerHost;
    private String mailServerPort = "25";
    //      
    private String fromAddress;
    //      
    private String toAddress;
    //                
    private String userName;
    private String passsword;
    //        
    private boolean validate;
    //    
    private String subject;
    //      
    private String content;
    //        
    private String[] attachFileNames;

    /**
     *          
     * */
    public Properties getProperties(){
        Properties pro = new Properties();
        pro.put("mail.smtp.host", this.mailServerHost);
        pro.put("mail.smtp.port", this.mailServerPort);
        pro.put("mail.smtp.auth", "true");
        return pro;
    }

    public String getMailServerHost() {
        return mailServerHost;
    }

    public void setMailServerHost(String mailServerHost) {
        this.mailServerHost = mailServerHost;
    }

    public String[] getAttachFileNames() {
        return attachFileNames;
    }

    public void setAttachFileNames(String[] attachFileNames) {
        this.attachFileNames = attachFileNames;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public boolean isValidate() {
        return validate;
    }

    public void setValidate(boolean validate) {
        this.validate = validate;
    }

    public String getPasssword() {
        return passsword;
    }

    public void setPasssword(String passsword) {
        this.passsword = passsword;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getToAddress() {
        return toAddress;
    }

    public void setToAddress(String toAddress) {
        this.toAddress = toAddress;
    }

    public String getFromAddress() {
        return fromAddress;
    }

    public void setFromAddress(String fromAddress) {
        this.fromAddress = fromAddress;
    }

    public String getMailServerPort() {
        return mailServerPort;
    }

    public void setMailServerPort(String mailServerPort) {
        this.mailServerPort = mailServerPort;
    }
}

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
세 번 째 클래스(메 일 발송 클래스)
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

public class SimpleMailSender {
    public boolean sendTextMail(MailSenderInfo mailInfo){
        
        Properties pro = mailInfo.getProperties();
        //      ,          (   )
        MyAuthenticator authenticator = new MyAuthenticator();
        authenticator.performCheck(mailInfo.getUserName(), mailInfo.getPasssword());
        //                       session
        Session sendMailSession = Session.getInstance(pro, authenticator);
	//       
        sendMailSession.setDebug(true);

        try {
            //  session          
            Message 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());
            //         
            mailMessage.setSentDate(new Date());
            //       
            String mailContent = mailInfo.getContent();
            mailMessage.setText(mailContent);
            //    
            Transport.send(mailMessage);
            return true;
        }catch (MessagingException ex){
            ex.printStackTrace();
        }
            return false;
    }

}
-----------------------------------------------------------------------------
   
 
  
import com.fndsoft.assistor.holiday.util.MailSenderInfo;
import com.fndsoft.assistor.holiday.util.SimpleMailSender;

public class TestSendEmail {
    public static void main(String[] args){
        //          
        MailSenderInfo mailInfo = new MailSenderInfo();
        mailInfo.setMailServerHost("smtp.qiye.163.com");//       
        mailInfo.setMailServerPort("25");
        mailInfo.setValidate(true);
        mailInfo.setUserName("[email protected]");
        mailInfo.setPasssword("***************");
        mailInfo.setFromAddress("[email protected]");
        mailInfo.setToAddress("[email protected]");
        mailInfo.setSubject("    ,     ");
        mailInfo.setContent("【    】   :"+"112233");
        //          
        SimpleMailSender sms = new SimpleMailSender();
        sms.sendTextMail(mailInfo);
    }
}

그 거 나 왔어요.
Authenticator failed,
많은 자 료 를 찾 아 보 았 는데,기본적으로 위 에 설치 해 놓 으 면 큰 문제 가 없 을 것 이다.
여기 몇 편의 블 로그 가 있 는데 볼 수 있 고 많은 것 을 배 웠 습 니 다.
http://blog.csdn.net/wangyonglin1123/article/details/47446919
http://blog.csdn.net/karem/article/details/4646071
여러분 의 질문 과 지 도 를 환영 합 니 다.

좋은 웹페이지 즐겨찾기