邮件发送
来源:互联网 发布:免费发帖软件 编辑:程序博客网 时间:2024/06/02 05:02
1、UtilTools.sendMail(to, to, subject, body.toString());
参数说明:
第一个to:收件人 “yongzhian@huawei.com;”主送多个人,to用";"隔开
第二个to:收件人 “yongzhian@huawei.com;”抄送多个人, 用";"隔开
subject:主题
body:内容 即html
2、实现类
EmailBase.getInstance().SendEmailsTCB(to, "","",subject, body);EmailBase采用单例,私有属性, private String mail_smtp_host; private String username; private String password; private String from; private String fromname; private String to; private String cc; private String bcc; private String toname; private String subject; private String body; private String authenticator; private Properties prp; private static EmailBase emailBase;初始化“init(){ prp = new Properties(); ResourceBundle config = ResourceBundle.getBundle("email", Locale.SIMPLIFIED_CHINESE); mail_smtp_host = config.getString("mail.smtp.host"); username = config.getString("username"); password = config.getString("password"); from = config.getString("from"); fromname = config.getString("fromname"); if (Constants.NEED_COMPOSE_ENCODE) fromname = UtilTools.encodeString(fromname); authenticator = config.getString("mail.smtp.auth"); prp.setProperty("mail.smtp.host", mail_smtp_host); prp.setProperty("username", username); prp.setProperty("password", password); prp.setProperty("mail.smtp.auth", authenticator); }private boolean SendEmailsTCB() {try {EmailBaseAuthenticator sa = new EmailBaseAuthenticator(username,password);Session session = Session.getInstance(prp, sa);//发邮件MimeMessage sendmessage = new MimeMessage(session);sendmessage.setFrom(new InternetAddress(from, fromname, "GBK"));// 分拆收件人StringTokenizer stk_to = new StringTokenizer(to, ";");int count_to = stk_to.countTokens();int i = 0;InternetAddress[] address_to = new InternetAddress[count_to];while (stk_to.hasMoreTokens()) {String email = stk_to.nextToken();address_to[i] = new InternetAddress(email, "", "GBK");i++;}sendmessage.addRecipients(Message.RecipientType.TO, address_to);// 分拆抄送人StringTokenizer stk_cc = new StringTokenizer(cc, ";");int count_cc = stk_cc.countTokens();int j = 0;InternetAddress[] address_cc = new InternetAddress[count_cc];while (stk_cc.hasMoreTokens()) {String email = stk_cc.nextToken();address_cc[j] = new InternetAddress(email, "", "GBK");j++;}sendmessage.addRecipients(Message.RecipientType.CC, address_cc);// 分拆密送人StringTokenizer stk_bcc = new StringTokenizer(bcc, ";");int count_bcc = stk_bcc.countTokens();int k = 0;InternetAddress[] address_bcc = new InternetAddress[count_bcc];while (stk_bcc.hasMoreTokens()) {String email = stk_bcc.nextToken();address_bcc[k] = new InternetAddress(email, "", "GBK");k++;}sendmessage.addRecipients(Message.RecipientType.BCC, address_bcc);if (Constants.NEED_COMPOSE_ENCODE)sendmessage.setSubject(UtilTools.encodeString(subject), "GBK");sendmessage.setSubject(subject, "GBK");sendmessage.setSentDate(new Date());sendmessage.setContent(body, "text/html; charset=GBK");Transport.send(sendmessage);} catch (AuthenticationFailedException afe) {afe.printStackTrace();return false;} catch (AddressException ae) {ae.printStackTrace();return false;} catch (javax.mail.MessagingException e) {e.printStackTrace();return false;} catch (java.io.UnsupportedEncodingException e) {e.printStackTrace();return false;} catch (Exception e) {e.printStackTrace();return false;}return true;}
3、需要调的实现类
public class EmailBaseAuthenticator extends Authenticator { private String username; private String password; public EmailBaseAuthenticator(String username, String password) { this.username = username; this.password = password; }public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(this.username, this.password);}}
4、使用mail.jar和commons-email-1.3.3-bin.zip轻松发送邮件
import org.apache.commons.mail.DefaultAuthenticator;import org.apache.commons.mail.EmailAttachment;import org.apache.commons.mail.MultiPartEmail; public class Test {public static void main(String[] args) throws Exception {// SimpleEmail - This class is used to send basic text based emails.// MultiPartEmail - This class is used to send multipart messages. This allows a text message with attachments either inline or attached.// HtmlEmail - This class is used to send HTML formatted emails. It has all of the capabilities as MultiPartEmail allowing attachments to be easily added. It also supports embedded images.// ImageHtmlEmail - This class is used to send HTML formatted emails with inline images. It has all of the capabilities as HtmlEmail but transform all image references to inline images.// EmailAttachment - This is a simple container class to allow for easy handling of attachments. It is for use with instances of MultiPartEmail and HtmlEmail.MultiPartEmail email = new MultiPartEmail();email.setHostName("smtp.qq.com");email.setSmtpPort(25);email.setAuthenticator(new DefaultAuthenticator("1*********", "a************"));email.setSSLOnConnect(true);email.setFrom("1************@qq.com");email.setSubject("TestMail测试邮箱");email.setMsg("This is a test mail ... :用纸-)");email.addTo("y*****@163.com");EmailAttachment emailAttachment = new EmailAttachment();emailAttachment.setPath("mail.jar");emailAttachment.setName("java邮件架包");email.attach(emailAttachment); email.send(); }}
所需架包下载地址 http://download.csdn.net/detail/yongzhian/7653175
0 0
- 邮件发送
- 邮件发送
- 发送邮件
- 发送邮件
- 发送邮件
- 邮件发送
- 邮件发送
- 邮件发送
- 发送邮件
- 发送邮件
- 邮件发送
- 邮件发送
- 发送邮件
- 邮件发送
- 邮件发送
- 发送邮件
- 发送邮件
- 发送邮件
- Perl chomp使用
- shell学习
- 仿百度文库解决方案(四)——利用JODConverter调用OpenOffice.org服务转换文档为PDF
- 将Maven项目发布到本地Maven私服Nexus
- button移动(或执行动画)之后无法响应点击事件的解决方法
- 邮件发送
- XSS攻击的介绍及防御
- android摄像头(camera)之 V4L2编程中用到的各种结构体
- linux定时任务的设置
- CI information
- CSS hack查询对照表
- mysql GROUP BY 字符相加
- 开题答辩
- Android实战技巧:多线程AsyncTask