定時向指定郵箱發送郵件

1、pom.xml

     <dependency>  
            <groupId>org.quartz-scheduler</groupId>  
            <artifactId>quartz</artifactId>  
            <version>2.2.1</version>  
        </dependency> 

2、設置調度任務

package com.zhiyou.job;

import java.util.List;

import javax.annotation.Resource;


import java.security.GeneralSecurityException;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
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;

import com.sun.mail.util.MailSSLSocketFactory;
public class JobA {

    public void SayHello() throws Exception {
        Properties prop = new Properties();
        // 開啓debug調試,以便在控制檯查看
        prop.setProperty("mail.debug", "true"); 
        // 設置郵件服務器主機名
        prop.setProperty("mail.host", "smtp.163.com");
        // 發送服務器需要身份驗證
        prop.setProperty("mail.smtp.auth", "true");
        // 發送郵件協議名稱
        prop.setProperty("mail.transport.protocol", "smtp");

        // 開啓SSL加密,否則會失敗
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        prop.put("mail.smtp.ssl.enable", "true");
        prop.put("mail.smtp.ssl.socketFactory", sf);

        // 創建session
        Session session = Session.getInstance(prop);
        // 通過session得到transport對象
        Transport ts = session.getTransport();
        // 連接郵件服務器:郵箱類型,帳號,授權碼代替密碼(更安全)
        ts.connect("smtp.163.com","[email protected]", "fdslfjsdsd");
        // 創建郵件
        // 創建郵件對象
        MimeMessage message = new MimeMessage(session);
        // 指明郵件的發件人
        message.setFrom(new InternetAddress("[email protected]"));
        // 指明郵件的收件人,現在發件人和收件人是一樣的,那就是自己給自己發
        message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
        // 郵件的標題
        message.setSubject("京東邀請函");
        // 郵件的文本內容  可以寫html代碼
        message.setContent(""
                + "<h1><font color=black>"
                + "京東邀請你參加京東9月20日,京東商品節!更多優惠商品等你來買,買的越多優惠越多!趕快行動吧!"
                + "</font></h1>"
                + "", "text/html;charset=UTF-8");
        // 發送郵件
        ts.sendMessage(message, message.getAllRecipients());
        ts.close();
    }


}

3、ApplicationContext.xml
約束文件:

         http://www.springframework.org/schema/task 
                         http://www.springframework.org/schema/task/spring-task-3.0.xsd
<bean id="jobA" class="com.zhiyou.job.JobA"></bean>
        <task:scheduled-tasks>
            <task:scheduled ref="jobA" method="SayHello" cron="*/1 * *  *  * ?"/>
        </task:scheduled-tasks> 

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/mail/Address

這裏寫圖片描述

把這個刪掉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章