⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendmail.java

📁 java阿里巴巴代码
💻 JAVA
字号:
package tools.util;

import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.*;
import javax.activation.FileDataSource;
import javax.activation.DataHandler;
import java.util.Vector;
import java.util.Properties;
import java.util.Date;
import java.util.Enumeration;

/**
 * Created by zywang
 * Date: 2007-2-8
 * Time: 15:46:56
 */
public class SendMail extends Thread{

    private InternetAddress[]	toAddress;
    private InternetAddress		fromAddress;
    private String 			    SMTPServer = "smtp.163.com";
    private String              username = "eatba";
    private String              password = "05568925952";
    private String 			    subject = "";
    private String 			    content = "";
    private Vector 			    attachment = new Vector();
    private boolean 		    bHTML = true;
    private String[][]          addressArray =  {{"eatba@163.com","false"},{"xboss.wang@gmail.com","false"},{"eatba.com@gmail.com","false"},{"wongzy2000@sohu.com","false"},{"eatba.com@gmail.com","false"},{"wongzy2000@sohu.com","false"}};

    public void run() {
        boolean bl = false;
        for(int i = 0;i < addressArray.length;i++){
            if(addressArray[i][1].equals("false")){
                bl = true;
                break;
            }
        }
        while(bl) {
            try {
                sendEmail();
                Thread.sleep(2000);
            } catch(Exception e) {
                System.out.println(e);
            }
        }
    }

    public SendMail(String from,String subj,String cont){
        try{
            this.fromAddress =	new InternetAddress(from);
            this.subject = subj;
            this.content = cont;

        }catch(Exception error){
            error.printStackTrace();
        }
    }

    public String sendEmail() throws MessagingException{

        String oneToAddress = this.getOneAddress();
        if(oneToAddress!=null){

            toAddress = InternetAddress.parse(oneToAddress);
            Properties props = new Properties();
            Session session;
            props.put("mail.smtp.host", SMTPServer);
            props.put("mail.smtp.auth", "true");
            SendMail.PopupAuthenticator popA = new SendMail.PopupAuthenticator();                 //邮件安全认证。
            PasswordAuthentication pop = popA.performCheck(username, password); //填写用户名及密码
            session = Session.getInstance(props, popA);

            try{
                Message msg = new MimeMessage(session);
                msg.setFrom(fromAddress);
                msg.setRecipients(Message.RecipientType.TO, toAddress);
                msg.setSubject(subject);
                msg.setSentDate(new Date());

                if(attachment.isEmpty()){
                    if (!bHTML){
                        msg.setText(content);
                    }else{
                        MimeBodyPart mbp1 = new MimeBodyPart();
                        mbp1.setContent(content, "text/html; charset=gb2312");
                        Multipart mp = new MimeMultipart();
                        mp.addBodyPart(mbp1);
                        msg.setContent(mp);
                    }
                }else{
                    MimeBodyPart mbp1 = new MimeBodyPart();

                    if( !bHTML)
                        mbp1.setText(content);
                    else
                        mbp1.setContent(content, "text/html");

                    Multipart mp = new MimeMultipart();
                    mp.addBodyPart(mbp1);

                    Enumeration eFile = attachment.elements();
                    while(eFile.hasMoreElements()){
                        MimeBodyPart mbp2 = new MimeBodyPart();

                        FileDataSource fds = new FileDataSource((String)eFile.nextElement().toString());
                        mbp2.setDataHandler(new DataHandler(fds));
                        mbp2.setFileName(fds.getName());
                        mp.addBodyPart(mbp2);
                    }
                    msg.setContent(mp);
                }
                Transport.send(msg);
                System.out.println("success");
                return "Success";
            }catch(Exception e){
                System.out.println("Error: " + e.getMessage());
                e.printStackTrace();
                return e.getMessage();
            }
        }else{
            System.out.println("发送完毕");
            return "发送完毕";
        }
    }

    public class PopupAuthenticator extends Authenticator {
        String username = null;
        String password = null;

        public PopupAuthenticator() {
        }

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

        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
    }

    public String getOneAddress(){
        String email = null;
        for(int i=0;i < this.addressArray.length;i++){
            if(addressArray[i][1].equals("false")){
                email = addressArray[i][0];
                addressArray[i][1] = "true";
                if(isEmail(email)){
                    return email;
                }
            }
        }
        return email;
    }

//    public void sendMailThreads(int tnum){
//        try {
//            Thread[] sendThreadArray = new Thread[tnum];
//            for(int i = 0;i<tnum;i++){
//                sendThreadArray[i] = new Thread(this.sendEmail());
//            }
//            for(int i = 0;i<tnum;i++){
//                sendThreadArray[i].start();
//            }
//        } catch (MessagingException e) {
//            e.printStackTrace();
//        }
//    }

    public boolean isEmail(String str){
        str = str.trim();
        String regex = "\\w+(\\.\\w+)*@\\w+(\\.\\w+)+";
        return str.matches(regex);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -