Java 郵件發送代碼

pooi 9年前發布 | 2K 次閱讀 Java 郵件

發送郵件

1、MailOperation.java 主要文件,郵件操作,發送
package main;

import java.util.Date;

import java.util.Properties;

import javax.mail.Message;

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;



public class MailOperation {

    /**

     * @author goming

    *TODO:發送郵件

    *@param user

    *@param password

    *@param host

    *@param from

    *@param to

    *@param subject

    *@param content

    *@return

    *@throws Exception

     */

    public String sendMail(String   user,String password,String host,String from,String to,String subject,String   content) throws Exception {

        // TODO Auto-generated method stub

       if(to!=null)

       {

           Properties props=System.getProperties();

           props.put("mail.smtp.host", host);

           props.put("mail.smtp.auth", "true"); 



           MailAuthenticator auth=new   MailAuthenticator();

           MailAuthenticator.USERNAME=user;

           MailAuthenticator.PASSWORD=password;

           Session session=Session.getInstance(props,auth);

           session.setDebug(true);

           try{

              MimeMessage message=new   MimeMessage(session);

              //message.setDataHandler(new DataHandler(content, "text/html;   charset=utf-8"));//設置郵件內容

              message.setFrom(new   InternetAddress(from));

              if(!to.trim().equals(""))

              message.addRecipient(Message.RecipientType.TO, new   InternetAddress(to.trim()));

              message.setSubject(subject);

              //  message.setContent(mp)

              //message.setText("this is 一個測試郵件");

              MimeBodyPart mbp1=new   MimeBodyPart();  //正文

              mbp1.setContent(content,"text/html;charset=utf-8");



              Multipart mp=new MimeMultipart();   //整個郵件:正文+附件

              mp.addBodyPart(mbp1);

              //mp.addBodyPart(mbp2);

              message.setContent(mp);

              message.setSentDate(new Date());

              message.saveChanges();



              Transport   trans=session.getTransport("smtp");

              trans.send(message);

              System.out.println(message.toString());

           }catch(Exception e)

           {

              e.printStackTrace();

              return "failure";

           }

           return "success";

       }

       else

           return "failure";



    }



    public static void main(String[] args) {

       MailOperation operation = new MailOperation();

       String user = "admin@xiamengoldenway.com";

       String password = "xmG0ldenway";

       String host = "smtp.qq.com";

       String from = "admin@qq.com";

       String to = "******@qq.com";//收件人

       String subject = "Test";

       String content = "測試郵件";



       try {

           String res = operation.sendMail(user,   password, host, from, to, subject, content);

           System.out.println(res);

       } catch (Exception e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       System.out.println(new Date());

    }



}


 

2、MailAuthenticator.jave 封裝發件人賬號密碼
import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;



/**

 *

 *   @author goming

 *

 */

public class MailAuthenticator extends   Authenticator



{

         public   static String USERNAME = "";



         public   static String PASSWORD = "";



         public   MailAuthenticator(){}

         protected   PasswordAuthentication getPasswordAuthentication(){

                   return   new PasswordAuthentication(USERNAME, PASSWORD);

         }

}


 

3、SendEmail.java 調用類,主要做郵件內容,以及發送一個地址回訪!
/**

     * 發送郵件

     * @author goming

     * @param to

     * @param uuid

     */

    @RequestMapping(params = "sendMail")

    @ResponseBody

    private void sendMail(String   to,HttpServletRequest request){

              MailOperation operation = new MailOperation();

       //發件人

       String user = "*****@qq.com";

       String password = "******";

       String host = "smtp.qq.com";

       String from = "1915960810@qq.com";

       String subject = "感謝您注冊創意生態資源集成系統軟件";

       //郵箱內容

       String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";

       StringBuffer sb = new StringBuffer();

       Date date=new Date();

       Long longtimeLong=date.getTime();

       sb.append("<!DOCTYPE>"+"<div bgcolor='#f1fcfa'   style='border:1px solid #d9f4ee; font-size:12px; line-height:22px; color:#005aa0;padding-left:1px;padding-top:5px;   padding-bottom:5px;'><span style='font-weight:bold;'>安全提示:</span>"

                      + "<div style='width:950px;font-family:arial;'>為了您的賬戶安全,我們建議您點擊以下鏈接驗證郵箱:<br/><a href='"+basePath+"UserRegister.do?ValidateEmail&time="+longtimeLong+"&token="+to+"'>"+basePath+"UserRegister.do?ValidateEmail&time="+longtimeLong+"&token="+to+"</a><br/>請在24小時內點擊該鏈接,您也可以將鏈接復制到瀏覽器地址欄訪問。<br/>本郵件由系統自動發出,請勿回復。<br/>感謝您的使用。<br/>廈門交叉媒體科技有限公司</div>"

                     +"</div>");

       try {

           String res = operation.sendMail(user,   password, host, from, to, subject, sb.toString());

//         System.out.println(res);

       } catch (Exception e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

    }


 

 本文由用戶 pooi 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!