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

📄 sendmail.java

📁 Java案例开发集锦,里面提供了很好的学习例子
💻 JAVA
字号:
//chp 9/** * @author wangmj * SendMail.java */import java.net.URL;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.activation.URLDataSource;import javax.mail.BodyPart;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;import javax.mail.internet.MimeUtility;//import javax.mail.internet.MailDateFormat;public class SendMail {        public static String TEXT = "text/plain;charset=gb2312";        public static String HTML = "text/html;charset=gb2312";        private String host; //邮件服务器        private String user; //用户名        private String pass;//用户密码        private String from;//发信人        private String to;//收信人        private String cc;//Carbon Copy, 抄送邮件给某人        private String bc;//bcc Blind Carbon Copy,隐蔽副本 隐蔽抄送给某人        private String subject;//邮件主题        private BodyPart body;//邮件内容        private boolean needAuth; //是否需要认证        private List attaches;//邮件附件/** * 构造方法 * */        public SendMail() {                needAuth = true;                attaches = new ArrayList();        }        /**         * 构造方法         * @param host         */        public SendMail(String host) {                needAuth = true;                attaches = new ArrayList();                this.host = host;        }        /**         * 构造方法         * @param host         * @param user         * @param pass         */        public SendMail(String host, String user, String pass) {                needAuth = true;                attaches = new ArrayList();                this.host = host;                this.user = user;                this.pass = pass;        }//设置邮件服务器是否需要认证        public void setNeedAuth(boolean needAuth) {                this.needAuth = needAuth;        }        public void setFrom(String from) {                this.from = from;        }        public void setTo(String to) {                this.to = to;        }        public String getPass() {                return pass;        }        public String getUser() {                return user;        }        public void setPass(String string) {                pass = string;        }        public void setUser(String string) {                user = string;        }        public String getFrom() {                return from;        }        public String getHost() {                return host;        }        public boolean isNeedAuth() {                return needAuth;        }        public String getSubject() {                return subject;        }        public void setHost(String string) {                host = string;        }        public void setBlindTo(String bc) {                this.bc = bc;        }        public void setCopyTo(String cc) {                this.cc = cc;        }        public void setSubject(String subject) {                this.subject = subject;        }/** * 设置邮件内容的形式 * @param string * @param contentType */        public void setBody(String string, String contentType) {                try {                        body = new MimeBodyPart();                        DataHandler dh = new DataHandler(string, contentType);                        body.setDataHandler(dh);                } catch (Exception exception) {                }        }/** * 设置邮件的内容的格式为文本格式 * @param string */        public void setBodyAsText(String string) {                setBody(string, TEXT);        }/** * 以HTMl的形式存放内容 * @param string */        public void setBodyAsHTML(String string) {                setBody(string, HTML);        }/** * 从文件中自动导入邮件内容 * @param filename */        public void setBodyFromFile(String filename) {                try {                        BodyPart mdp = new MimeBodyPart();                        FileDataSource fds = new FileDataSource(filename);                        DataHandler dh = new DataHandler(fds);                        mdp.setDataHandler(dh);                        attaches.add(mdp);                } catch (Exception exception) {                }        }/** * 从一个URL导入邮件的内容 * @param url */        public void setBodyFromUrl(String url) {                try {                        BodyPart mdp = new MimeBodyPart();                        URLDataSource ur = new URLDataSource(new URL(url));                        DataHandler dh = new DataHandler(ur);                        mdp.setDataHandler(dh);                        attaches.add(mdp);                } catch (Exception exception) {                }        }/** * 将String中的内容存放入文件showname,并将这个文件作为附件发送给收件人 * @param string 为邮件的内容 * @param showname 显示的文件的名字 */        public void addAttachFromString(String string, String showname) {                try {                        BodyPart mdp = new MimeBodyPart();                        DataHandler dh = new DataHandler(string, TEXT);                        mdp.setFileName(MimeUtility.encodeWord(showname, "gb2312", null));                        mdp.setDataHandler(dh);                        attaches.add(mdp);                } catch (Exception exception) {                }        }/** * filename为邮件附件 *在收信人的地方以showname这个文件名来显示 * @param filename * @param showname */        public void addAttachFromFile(String filename, String showname) {                try {                        BodyPart mdp = new MimeBodyPart();                        FileDataSource fds = new FileDataSource(filename);                        DataHandler dh = new DataHandler(fds);                        mdp.setFileName(MimeUtility.encodeWord(showname, "gb2312", null));                        mdp.setDataHandler(dh);                        attaches.add(mdp);                } catch (Exception exception) {                }        }/** * 将互联网上的一个文件作为附件发送给收信人 * 并在收信人处显示文件的名字为showname * @param url * @param showname */        public void addAttachFromUrl(String url, String showname) {                try {                        BodyPart mdp = new MimeBodyPart();                        URLDataSource ur = new URLDataSource(new URL(url));                        DataHandler dh = new DataHandler(ur);                        mdp.setFileName(MimeUtility.encodeWord(showname, "gb2312", null));                        mdp.setDataHandler(dh);                        attaches.add(mdp);                } catch (Exception exception) {                }        }/** * 发送邮件,需要身份认证 * @throws Exception */        public void send() throws Exception {                try {                        Properties props = new Properties();                        if (host != null && !host.trim().equals(""))                                props.put("mail.smtp.host", host);                        else                                throw new Exception("没有指定发送邮件服务器");                        if (needAuth)                                props.put("mail.smtp.auth", "true");                        Session s = Session.getInstance(props, null);                        MimeMessage msg = new MimeMessage(s);                        //设置邮件主题                        msg.setSubject(subject);                        //设置邮件发送时间                        msg.setSentDate(new Date());                        //制定发件人                        if (from != null)                                msg.addFrom(InternetAddress.parse(from));                        else                                throw new Exception("没有指定发件人");                        //指定收件人                        if (to != null)                                msg.addRecipients(javax.mail.Message.RecipientType.TO,                                                InternetAddress.parse(to));                        else                                throw new Exception("没有指定收件人地址");                        //指定抄送给谁                        if (cc != null)                                msg.addRecipients(javax.mail.Message.RecipientType.CC,                                                InternetAddress.parse(cc));                        //制定隐藏抄送给谁                        if (bc != null)                                msg.addRecipients(javax.mail.Message.RecipientType.BCC,                                                InternetAddress.parse(bc));                        Multipart mm = new MimeMultipart();                        //设置邮件的附件                        if (body != null)                                mm.addBodyPart(body);                        for (int i = 0; i < attaches.size(); i++) {                                BodyPart part = (BodyPart) attaches.get(i);                                mm.addBodyPart(part);                        }//			设置邮件的内容                        msg.setContent(mm);                        //保存所有改变                        msg.saveChanges();                        //发送邮件服务器(SMTP),简单邮件传输协议                        Transport transport = s.getTransport("smtp");                        //访问邮件服务器                        transport.connect(host, user, pass);                        //发送信息                        transport.sendMessage(msg, msg.getAllRecipients());                        //关闭邮件传输                        transport.close();                } catch (Exception e) {                        throw new Exception("发送邮件失败:", e);                }        }}

⌨️ 快捷键说明

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