JavaMail邮件发送-将邮件封存到本地和发送一封本地邮件
JavaMail邮件发送-将邮件保存到本地和发送一封本地邮件? package com.mailimport java.io.Fileimport ja
JavaMail邮件发送-将邮件保存到本地和发送一封本地邮件
?
package com.mail;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import java.util.Date;import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeUtility;/** * @说明 保存一个邮件 * @author cuisuqiang * @version 1.0 * @since */public class TextMail {public static void main(String[] args) throws Exception {Properties props = new Properties();props.put( "mail.smtp.host ", "smtp.163.com ");props.put("mail.smtp.port", 25);props.put("mail.smtp.auth", "true");Session session = Session.getInstance(props);session.setDebug(true);Message message = new MimeMessage(session);InternetAddress from = new InternetAddress("test20120711120200@163.com");from.setPersonal(MimeUtility.encodeText("java小强<test20120711120200@163.com>"));message.setFrom(from);InternetAddress to = new InternetAddress("test20120711120200@163.com");message.setRecipient(Message.RecipientType.TO, to);message.setSubject(MimeUtility.encodeText("强哥邀请,谁敢不从!"));message.setText("强哥邀请你访问我的博客:http://cuisuqiang.iteye.com/!");message.setSentDate(new Date());// 邮件对象File file = new File("C:\\textmail.eml");// 获得输出流OutputStream ips = new FileOutputStream(file);// 把邮件内容写入到文件message.writeTo(ips);// 关闭流ips.close();System.out.println("发送完毕");}}?
邮件对象创建后没有立即发送,而是保存到了一个文件中
?
那么如何发送一封已经存在的邮件呢?也很简单,只是邮件对象的创建的方式不一样了而已
?
?
package com.mail;import java.io.File;import java.io.FileInputStream;import java.util.Date;import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.MimeMessage;/** * 放松一封现有邮件 * @author cuisuqiang@163.com */public class SendCurrentMail {public static void main(String[] args) throws Exception {Properties props = new Properties();props.put("mail.smtp.auth", "true");Session session = Session.getInstance(props);// 现有邮件文件File file = new File("C:\\textmail.eml");FileInputStream fis = new FileInputStream(file);// 创建邮件对象Message message = new MimeMessage(session, fis);message.setSentDate(new Date());message.saveChanges();// 发送邮件Transport transport = session.getTransport("smtp");transport.connect("smtp.163.com", 25, "test20120711120200", "test123456");transport.sendMessage(message, message.getAllRecipients());transport.close();fis.close();System.out.println("发送完毕");}}?
当然,具体业务中的应用肯定要增加许多判断的,特别是设计到了文件的操作,我这里就不再一一的解说了!
?
最后:
由于近期大量小网站在未经同意情况下使用文章,现将我的博客地址公布如下,请您到ITEYE网站看原创,谢谢!
http://cuisuqiang.iteye.com/?!