知识大全 Javamail写带附件eml文件并调用Outlook

Posted 附件

篇首语:千金一刻莫空度,老大无成空自伤。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Javamail写带附件eml文件并调用Outlook相关的知识,希望对你有一定的参考价值。

Javamail写带附件eml文件并调用Outlook  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   将邮件写入到文件的代码

  msg saveChanges();File f = new File( d:/test eml );msg writeTo(new FileOutputStream(f));

   调用outlook的代码

  Process p = Runtime getRuntime() exec( cmd /C start msimn exe /eml:d:/test eml );

   完整的代码如下

  package code jdk mail;

  import java io File;import java io FileNotFoundException;import java io FileOutputStream;import java io IOException;import java util Date;import java util Enumeration;import java util HashMap;import java util Properties;import java util Vector;

  import javax activation DataHandler;import javax activation FileDataSource;import javax mail Address;import javax mail AuthenticationFailedException;import javax mail Message;import javax mail MessagingException;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;

  public class EmailWriteToFile // 定义发件人 收件人 SMTP服务器 用户名 密码 主题 内容等private String displayName;

  private String to;

  private String from;

  private String smtpServer;

  private String username;

  private String password;

  private String subject;

  private String content;

  private boolean ifAuth; // 服务器是否要身份认证

  private String filename = ;

  private Vector file = new Vector(); // 用于保存发送附件的文件名的集合

  private String contentType = text/ ;

  private String charset = utf ;

  public void addFile(String filename) file add(filename);

  public String getContentType() return contentType;

  public void setContentType(String contentType) ntentType = contentType;

  public String getCharset() return charset;

  public void setCharset(String charset) this charset = charset;

  /*** 设置SMTP服务器地址*/public void setSmtpServer(String smtpServer) this smtpServer = smtpServer;

  /*** 设置发件人的地址*/public void setFrom(String from) this from = from;

  /*** 设置显示的名称*/public void setDisplayName(String displayName) this displayName = displayName;

  /*** 设置服务器是否需要身份认证*/public void setIfAuth(boolean ifAuth) this ifAuth = ifAuth;

  /*** 设置E mail用户名*/public void setUserName(String username) this username = username;

  /*** 设置E mail密码*/public void setPassword(String password) this password = password;

  /*** 设置接收者*/public void setTo(String to) this to = to;

  /*** 设置主题*/public void setSubject(String subject) this subject = subject;

  /*** 设置主体内容*/public void setContent(String content) ntent = content;

  public EmailWriteToFile()

  

  private int port = ;

  public int getPort() return port;

  public void setPort(int port) this port = port;

  /*** 发送邮件** @throws IOException* @throws FileNotFoundException*/public boolean send() throws FileNotFoundException IOException HashMap<String String> map = new HashMap<String String>();map put( state success );String message = 邮件发送成功! ;Session session = null;Properties props = System getProperties();props put( mail smtp host smtpServer);props put( mail smtp port port);try

  props put( mail smtp auth false );session = Session getDefaultInstance(props null);

  session setDebug(false);Transport trans = null;Message msg = new MimeMessage(session);try Address from_address = new InternetAddress(from displayName);msg setFrom(from_address); catch (java io UnsupportedEncodingException e) e printStackTrace();InternetAddress[] address = new InternetAddress(to) ;msg setRecipients(Message RecipientType TO address);msg setSubject(subject);Multipart mp = new MimeMultipart();MimeBodyPart mbp = new MimeBodyPart();mbp setContent(content toString() getContentType() + ; charset= + getCharset());mp addBodyPart(mbp);if (!file isEmpty()) // 有附件Enumeration efile = file elements();while (efile hasMoreElements()) mbp = new MimeBodyPart();filename = efile nextElement() toString(); // 选择出每一个附件名FileDataSource fds = new FileDataSource(filename); // 得到数据源mbp setDataHandler(new DataHandler(fds)); // 得到附件本身并至入BodyPartmbp setFileName(MimeUtility encodeText(fds getName() getCharset() B )); // 得到文件名同样至入BodyPartmp addBodyPart(mbp);file removeAllElements();msg setContent(mp); // Multipart加入到信件msg setSentDate(new Date()); // 设置信件头的发送日期// 发送信件msg saveChanges();File f = new File( d:/test eml );msg writeTo(new FileOutputStream(f));

   catch (AuthenticationFailedException e) map put( state failed );message = 邮件发送失败!错误原因 + 身份验证错误! ;e printStackTrace();return false; catch (MessagingException e) message = 邮件发送失败!错误原因 + e getMessage();map put( state failed );e printStackTrace();Exception ex = null;if ((ex = e getNextException()) != null) System out println(ex toString());ex printStackTrace();return false;// System out println( 提示信息: +message);map put( message message);return true;

  public static void main(String[] args) throws FileNotFoundException IOException InterruptedException EmailWriteToFile o = new EmailWriteToFile();o setSmtpServer( localhost );o setFrom( );o setDisplayName( TOM );o setTo( );o setSubject( Test Subject );o setContent( Test Content );o setCharset( GBK );o addFile( e:/读我 txt );o send();Process p = Runtime getRuntime() exec( cmd /C start msimn exe /eml:d:/test eml );

cha138/Article/program/Java/hx/201311/25757

相关参考

知识大全 asp.net源程序编译为dll文件并调用过程

  使用csc命令将cs文件编译成dll的过程很多时候我们需要将cs文件单独编译成dll文件 操作如下:打开命令窗口>输入cmd到控制台>cd C:WINDOWSMic

颁转通知中被印发或转发的文件应列为附件

颁转通知中被印发或转发的文件应列为附件。_____答案:错误解析:颁转通知中被印发或转发的文件不能作为附件。

知识大全 使用java播放声音文件

  因为java强大的类库解决这个问题并不困难只是API的调用问题而已不过不同的调用也有区别  很多人讲要使用JFM不过我懒得去安装所以另寻他法网上提供最多的方法就是利用Applet中的AudioCl

知识大全 JAVA调用exe可执行文件

JAVA调用exe可执行文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  publicclas

知识大全 ASP.NET调用.sql文件

ASP.NET调用.sql文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  笔者好久没有写随笔

知识大全 Java中如何调用cmd压缩文件

Java中如何调用cmd压缩文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天在做一个ja

知识大全 ASP开发中数据库文件调用的捷径

ASP开发中数据库文件调用的捷径  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言    本文

知识大全 使用PHP程序直接调用文本文件的内容实例

使用PHP程序直接调用文本文件的内容实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何用p

照明灯具及附件应符合什么规定?

  1.查验合格证,新型气体放电灯具有随带技术文件;  2.外观检查:灯具涂层完整,无损伤,附件齐全。防爆灯具铭牌上有防爆标志和防爆合格证号,普通等具有安全认证标志;  3.对成套灯具的绝缘电阻、内部

照明灯具及附件应符合什么规定?

  1.查验合格证,新型气体放电灯具有随带技术文件;  2.外观检查:灯具涂层完整,无损伤,附件齐全。防爆灯具铭牌上有防爆标志和防爆合格证号,普通等具有安全认证标志;  3.对成套灯具的绝缘电阻、内部