首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 发送邮件 简略易操作

2012-09-27 
java 发送邮件 简单易操作/** * Created by IntelliJ IDEA. * User: tsaowe * Date: 12-3-6 * Time: 上午9

java 发送邮件 简单易操作

/** * Created by IntelliJ IDEA. * User: tsaowe * Date: 12-3-6 * Time: 上午9:15 */import java.util.Date;import java.util.Properties;import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.SendFailedException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;public class MailSender {    private String host;    private Address from;    private String username;    private String password;    private Address[] to;    private String subject;    private String message;    public MailSender() {        /* todo 这儿是发送邮件的服务器 */        this.host = "smtp.????.???";        try {            /* todo 这儿填写发给别人的邮件地址,就是自己邮箱地址*/            this.from = new InternetAddress("xxxx@xx.com");        } catch (AddressException e) {            e.printStackTrace();        }        this.username = "xxxx@xx.com"; //登录名,和上面邮件地址一致        this.password = "xxxxxxxxxx";  //登录密码        this.subject = "";        this.message = "";    }    public MailSender(String host, String from, String username, String password){        this.host = host;        try {            this.from = new InternetAddress(from);        } catch (AddressException e) {            e.printStackTrace();        }        this.username = username;        this.password = password;        this.subject = "";        this.message = "";    }    public void addAddress(String to) {        int length = 0;        if(this.to == null || this.to.length == 0){            length = 0;        }else{            length = this.to.length;        }        Address[] oldTo = this.to;        this.to = new InternetAddress[length + 1];        try {            this.to[0] = new InternetAddress(to);        } catch (AddressException e) {            e.printStackTrace();        }        for(int i = 0; i<length; i++) {            assert oldTo != null;            this.to[i+1] = oldTo[i];        }    }    public void setSubject(String subject) {        this.subject = subject;    }    public void setMessage(String message) {       this.message = message;    }    public String getMessage() {        return this.message;    }    public boolean sendMail() {        Properties props = new Properties();        props.put("mail.smtp.host", this.host);        props.put("mail.smtp.auth", "true");        Session session = Session.getInstance(props, null);        try {            Message msg = new MimeMessage(session);            msg.setFrom(this.from);            Address[] address = this.to;            msg.setRecipients(Message.RecipientType.TO, address);            ((MimeMessage)msg).setSubject(this.subject,"utf-8");            msg.setSentDate(new Date());            BodyPart mdp=new MimeBodyPart();            mdp.setContent(this.message,"text/html;charset=utf-8");            Multipart mm=new MimeMultipart();            mm.addBodyPart(mdp);            msg.setContent(mm);            msg.saveChanges();            Transport transport = session.getTransport("smtp");            transport.connect(host, username, password);            transport.sendMessage(msg, msg.getAllRecipients());            transport.close();            System.out.println("Send mail: "+ msg.getSentDate());            return true;        } catch (MessagingException mex) {            System.out.println("\n--Exception");            System.out.println();            Exception ex = mex;            do {                if (ex instanceof SendFailedException) {                    SendFailedException sfex = (SendFailedException)ex;                    Address[] invalid = sfex.getInvalidAddresses();                    if (invalid != null) {                        System.out.println("    ** Invalid Addresses");                        for (Address anInvalid : invalid) System.out.println("         " + anInvalid);                    }                    Address[] validUnsent = sfex.getValidUnsentAddresses();                    if (validUnsent != null) {                        System.out.println("    ** ValidUnsent Addresses");                        for (Address aValidUnsent : validUnsent) System.out.println("         " + aValidUnsent);                    }                    Address[] validSent = sfex.getValidSentAddresses();                    if (validSent != null) {                        System.out.println("    ** ValidSent Addresses");                        for (Address aValidSent : validSent) System.out.println("         " + aValidSent);                    }                }                System.out.println();                if (ex instanceof MessagingException)                    ex = ((MessagingException)ex).getNextException();                else                    ex = null;            } while (ex != null);            return false;        }    }    public static void main(String[] args) {        MailSender mailSenderInstance = new MailSender();        mailSenderInstance.addAddress("xxxx@xxx.xxx");        mailSenderInstance.setSubject("Test Mail");        mailSenderInstance.setMessage("Test Mail");        mailSenderInstance.sendMail();    }}

热点排行