java連接163郵箱發送郵件


一:jar包:
image
下載鏈接:鏈接: http://pan.baidu.com/s/1dDhIDLv 密碼: ibg5
二:代碼

1----------------------------------------------------------------------------------
package com.No008.shop.framework.common.dic.mail.mail163;
import java.util.Properties;
/**
 * 主題:簡單郵件(不帶附件的郵件)發送
 * @author 劉軍/shell_liu
 * 2015-4-12
 */
public class MailSenderInfo {

    //發送郵件的服務器的IP和端口
    private String mailServerHost;
    private String mailServerPort="25";
    //郵件發送者的地址
    private String fromAddress;
    //郵件接收者的地址
    private String toAddress;
    //登陸郵件發送服務器的用戶名和密碼
    private String userName;
    private String password;
    //是否需要身份驗證
    private boolean validate=false;
    //郵件發送主題
    private String subject;
    //郵件的文本內容
    private String content;
    //郵件附件的文件名
    private String[] attachFileNames;
    /**
     * 獲得郵件會話屬性
     */
    public  Properties getProperties(){
        Properties p=new Properties();
        p.put("mail.smtp.host", this.mailServerHost);
        p.put("mail.smtp.port", this.mailServerPort);
        p.put("mail.smtp.auth", validate?"true":"false");
        return p;}
    public String getMailServerHost() {
        return mailServerHost;
    }
    public void setMailServerHost(String mailServerHost) {
        this.mailServerHost = mailServerHost;
    }
    public String getMailServerPort() {
        return mailServerPort;
    }
    public void setMailServerPort(String mailServerPort) {
        this.mailServerPort = mailServerPort;
    }
    public String getFromAddress() {
        return fromAddress;
    }
    public void setFromAddress(String fromAddress) {
        this.fromAddress = fromAddress;
    }
    public String getToAddress() {
        return toAddress;
    }
    public void setToAddress(String toAddress) {
        this.toAddress = toAddress;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public boolean isValidate() {
        return validate;
    }
    public void setValidate(boolean validate) {
        this.validate = validate;
    }
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String[] getAttachFileNames() {
        return attachFileNames;
    }
    public void setAttachFileNames(String[] attachFileNames) {
        this.attachFileNames = attachFileNames;
    }




}




2---------------------------------------------------------------------------------------------------------------------------------------


package com.No008.shop.framework.common.dic.mail.mail163;

import javax.mail.*;
/**
 * 主題:簡單郵件(不帶附件的郵件)發送
 * @author 劉軍/shell_liu
 * 2015-4-12
 */
public class MyAuthenticator extends Authenticator{

    String userName=null;
    String password=null;

    public MyAuthenticator( ) {

    }
    public MyAuthenticator(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }

    protected PasswordAuthentication getPasswordAuthentication(){
        return new PasswordAuthentication(userName, password);

    }
}


3---------------------------------------------------------------------------------------------------------------------------

package com.No008.shop.framework.common.dic.mail.mail163;
/**
 * 主題:簡單郵件(不帶附件的郵件)發送
 * @author 劉軍/shell_liu
 * 2015-4-12
 */
public class SendMail {

     public static void main(String[] args) {
         SendMail.send_163();
    }

    //163郵箱 
    public static void send_163() {
         //這個類主要是設置郵件
        MailSenderInfo mailInfo=new MailSenderInfo();
        mailInfo.setMailServerHost("smtp.163.com");
        mailInfo.setMailServerPort("25");
        mailInfo.setValidate(true);
        mailInfo.setUserName("liujun_010402@163.com");//實際發送者
        mailInfo.setPassword("密碼");//您的郵箱密碼
        mailInfo.setFromAddress("liujun_010402@163.com");//設置發送人郵箱地址
        mailInfo.setToAddress("1136808529@qq.com");
        mailInfo.setSubject("test");//設置郵箱標題
        mailInfo.setContent("<b>test</b>");//設置郵箱內容
        //這個類主要是用來發送郵件
        SimpleMailSender sms=new SimpleMailSender();
        sms.sendTextMail(mailInfo);//發送文本格式
     sms.sendHtmlMail(mailInfo);//發送html格式:如果需要以html格式發送則需要處理好附件上傳地址問題

    }

}


4----------------------------------------------------------------------------------------------------------------------

package com.No008.shop.framework.common.dic.mail.mail163;

import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
 * 主題:簡單郵件(不帶附件的郵件)發送
 * @author 劉軍/shell_liu
 * 2015-4-12
 */
public class SimpleMailSender {
    /**
     * 以文本格式發送郵件
     *   @param mailInfo
     *   代發送的郵件的信息
     */

    public boolean sendTextMail(MailSenderInfo mailInfo){
        //判斷是否需要身份認證
        MyAuthenticator authenticator=null;
        Properties pro=mailInfo.getProperties();
         if(mailInfo.isValidate()){
             //如果需要身份認證;則創建一個密碼驗證器
             authenticator=new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
         }
        //根據郵件會話屬性和密碼驗證器構造一個郵件發送的session
         Session sendMailSession=Session.getDefaultInstance(pro, authenticator);
         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 (Exception e) {
            e.printStackTrace();
        }
        return false;
    }


    /***
     * 以HTML格式發送郵件
     * @param mailInfo
     *     待發送的郵件信息
     */
    public boolean sendHtmlMail(MailSenderInfo mailInfo){
        //判斷是否需要身份認證
        MyAuthenticator authenticator=null;
        Properties pro=mailInfo.getProperties();
         //如果需要身份認證;則創建一個密碼驗證器
         if(mailInfo.isValidate()){
             authenticator=new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
         }
        //根據郵件會話屬性和密碼驗證器構造一個郵件發送的session
         Session sendMailSession=Session.getDefaultInstance(pro, authenticator);
         try {
               //    根據session 創建一個郵件消息
             Message mailMessage=new MimeMessage(sendMailSession);
              //創建郵件發送者地址
             Address from =new InternetAddress(mailInfo.getFromAddress());
              //設置郵件消息的發送者
             mailMessage.setFrom(from);
              //創建郵件的接受者地址;並設置到郵件消息中
             Address to=new InternetAddress(mailInfo.getToAddress());
               //Message.RecipientType.TO表示接收者的類型為TO
             mailMessage.setRecipient(Message.RecipientType.TO, to);
             //設置郵件消息的主題
             mailMessage.setSubject(mailInfo.getSubject());
             //設置郵件消息發送的時間
             mailMessage.setSentDate(new Date());
             //設置郵件消息的主要內容

             //MiniMultipart 類是一個容器 包含MimeBodyPart類型的對象
             Multipart mailPart =new MimeMultipart();
              //創建一個包含HTNL內容的MimeBodyPart
             BodyPart html=new MimeBodyPart();
             //設置HTML內容
             html.setContent(mailInfo.getContent(),"text/html;charset=utf-8");
             mailPart.addBodyPart(html);

             //s設置信件的附件(用本地上的文件作為附件)
             /**
             html=new MimeBodyPart();
             FileDataSource fds=new FileDataSource("");
             DataHandler dh=new DataHandler(fds);
             html.setFileName("");
             html.setDataHandler(dh);
             mailPart.addBodyPart(html);
             **/
             //將MiniMultipart對象設置為郵件內容
             mailMessage.setContent(mailPart);
             mailMessage.saveChanges();

             //發送郵件
             Transport.send(mailMessage);
             return true;
            } catch (Exception e) {
                e.printStackTrace();
            }

        return false;
    }












}







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM