文件名称:发送邮件的Java代码
文件大小:4KB
文件格式:JAVA
更新时间:2012-12-28 18:03:21
java
package com.lovo.t13.g1.mail; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Authenticator; import javax.mail.Multipart; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; /** * 利用java.mail的邮件发送程序 */ public class SendMailTest{ // public static void main(String[] args) // { // String title = "注册成功";// 所发送邮件的标题 // String from = "401171674@qq.com";// 从那里发送 // String sendTo[] = {"19811401@qq.com"};// 发送到那里 // // 邮件的文本内容,可以包含html标记则显示为html页面 // String content = "注册成功"; // // 所包含的附件,及附件的重新命名 // String fileNames[] = {"F:\\图片\\1.jpg","F:\\图片\\2.jpg"}; // try // { // // MailSender mailsender = new MailSender(); // sendmail(title, from, sendTo, content,fileNames,"text/html;charset=gb2312"); // } // catch (Exception ex) // { // ex.printStackTrace(); // } //} public static void sendmail(String subject, String from, String[] to, String text,String[] filenames, String mimeType) throws Exception { // ResourceBundle mailProps = ResourceBundle.getBundle("mail"); // 可以从配置文件读取相应的参数 Properties props = new Properties(); String smtp = "smtp.qq.com"; // 设置发送邮件所用到的smtp String servername = "401171674"; String serverpaswd = "heziyu222"; javax.mail.Session mailSession; // 邮件会话对象 javax.mail.internet.MimeMessage mimeMsg; // MIME邮件对象 props = java.lang.System.getProperties(); // 获得系统属性对象 props.put("mail.smtp.host", smtp); // 设置SMTP主机 props.put("mail.smtp.auth", "true"); // 是否到服务器用户名和密码验证 // 到服务器验证发送的用户名和密码是否正确 Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean(servername, serverpaswd); // 设置邮件会话 mailSession = javax.mail.Session.getInstance(props, (Authenticator) myEmailAuther); // 设置传输协议 javax.mail.Transport transport = mailSession.getTransport("smtp"); // 设置from、to等信息 mimeMsg = new javax.mail.internet.MimeMessage(mailSession);// if (from != null && from.length() > 0) { InternetAddress sentFrom = new InternetAddress(from); mimeMsg.setFrom(sentFrom); // 设置发送人地址 } InternetAddress[] sendTo = new InternetAddress[to.length]; for (int i = 0; i < to.length; i++) { System.out.println("发送到:" + to[i]); sendTo[i] = new InternetAddress(to[i]); } mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo); mimeMsg.setSubject(subject, "utf-8"); MimeBodyPart messageBodyPart1 = new MimeBodyPart(); // messageBodyPart.setText(UnicodeToChinese(text)); messageBodyPart1.setContent(text, mimeType); Multipart multipart = new MimeMultipart();// 附件传输格式 multipart.addBodyPart(messageBodyPart1); for (int i = 0; i < filenames.length; i++) { MimeBodyPart messageBodyPart2 = new MimeBodyPart(); // 选择出每一个附件名 String filename = filenames[i].split(",")[0]; String displayname = filenames[i].split(",")[0]; // 得到数据源 FileDataSource fds = new FileDataSource(filename); // 得到附件本身并至入BodyPart messageBodyPart2.setDataHandler(new DataHandler(fds)); // 得到文件名同样至入BodyPart messageBodyPart2.setFileName(displayname); messageBodyPart2.setFileName(fds.getName()); messageBodyPart2.setFileName(MimeUtility.encodeText(displayname)); multipart.addBodyPart(messageBodyPart2); } mimeMsg.setContent(multipart); // 设置信件头的发送日期 mimeMsg.setSentDate(new Date()); mimeMsg.saveChanges(); // 发送邮件 transport.send(mimeMsg); transport.close(); } }