知识大全 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相关参考
使用csc命令将cs文件编译成dll的过程很多时候我们需要将cs文件单独编译成dll文件 操作如下:打开命令窗口>输入cmd到控制台>cd C:WINDOWSMic
颁转通知中被印发或转发的文件应列为附件。_____答案:错误解析:颁转通知中被印发或转发的文件不能作为附件。
因为java强大的类库解决这个问题并不困难只是API的调用问题而已不过不同的调用也有区别 很多人讲要使用JFM不过我懒得去安装所以另寻他法网上提供最多的方法就是利用Applet中的AudioCl
JAVA调用exe可执行文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! publicclas
ASP.NET调用.sql文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 笔者好久没有写随笔
Java中如何调用cmd压缩文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 今天在做一个ja
ASP开发中数据库文件调用的捷径 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 引言 本文
使用PHP程序直接调用文本文件的内容实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何用p
1.查验合格证,新型气体放电灯具有随带技术文件; 2.外观检查:灯具涂层完整,无损伤,附件齐全。防爆灯具铭牌上有防爆标志和防爆合格证号,普通等具有安全认证标志; 3.对成套灯具的绝缘电阻、内部
1.查验合格证,新型气体放电灯具有随带技术文件; 2.外观检查:灯具涂层完整,无损伤,附件齐全。防爆灯具铭牌上有防爆标志和防爆合格证号,普通等具有安全认证标志; 3.对成套灯具的绝缘电阻、内部