javamail写带附件eml文件并调用outlook的方法

java邮件读取工具类,可读取附件,功能强大! java邮件读取工具类,可读取附件,功能强大,经测试可用。 立即下载

1 将邮件写入到文件的代码

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

2 调用outlook的代码

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

3 完整的代码如下

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/html";

  
private String charset = "utf-8";

  
public void addFile(String filename) {
    file.add(filename);
  }

  
public String getContentType() {
    
return contentType;
  }

  
public void setContentType(String contentType) {
    
this.contentType = 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) {
    
this.content = content;
  }

  
public EmailWriteToFile() {

  }

  
private int port = 25;

  
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)); // 得到附件本身并至入BodyPart
          mbp.setFileName(MimeUtility.encodeText(fds.getName(), getCharset(),"B")); // 得到文件名同样至入BodyPart
          mp.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(
"from@from.com");
    o.setDisplayName(
"TOM");
    o.setTo(
"to@to.com");
    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");

  }

}
用java写的类似outlook程序(javamail) 这是一个用Netbean 6.1写的有关javamail的程序(客户端程序)可以用merak建一个Mail服务器。 我自己写的,也是我的第一个在csdn的上传资料,望大家多多支持,谢谢!!(^_^)。 虽说功能比较简陋,但java邮件服务的各种主要功能已经囊括。(收、发邮件;已读、未读邮件)用JTree实现;集成了JPopueMune 。是初学java Swing 、java I/O流(有关RandomAccessFile读中文的问题) 和 javamail 得较好的参考资料。 注意 在dist目录下的Save 是根文件下的Save, 如果用Netbean 6.1重新生成主项目,一定要记得把根文件下的Save拷贝至dist目录下,否则会报异常的。还用dist目录下的Start.jar和splash.png是我的另外的一个项目在这的作用是“闪屏”功能,要JDK1.6才能支持的,源代码以后放吧。所以,请自行备份吧!可以用别的图片代替,但名字一定是splash.png的。 望大家多提建议和意见,同时也给自己加一分吧:) 在此谢谢各位的支持! 立即下载

相关推荐

【HarmonyOS 5】鸿蒙APP使用【团结引擎Unity】开发的案例教程

以下是基于团结引擎开发鸿蒙Unity应用的详细案例教程,整合环境配置、工程适配、跨语言通信等核心环节。

2201_75709314的博客 2484

javamail发送带附件普通邮件、outllook会议邀请、取消、修改会议邮件

一、配置环境准备 1.1 mail.smtp.host查看 打开outlook:文件–》信息–》账户设置–》双击账户 1.2 修改本地hosts文件 最好在C:\Windows\System32\drivers\etc\hosts文件配置一下主机名, ip可以在命令行中 ping mail.unipower.cn 查看到 hosts文件新增一行: ip mail.unipower.cn ...

han949417140的博客 5935

Cartographer参数调优指南:如何用Lua配置解决建图漂移问题

本文深入解析Cartographer SLAM系统的Lua参数调优方法,针对建图漂移问题提供完整解决方案。从运动滤波、扫描匹配到多传感器融合,详细讲解关键参数配置技巧,并给出仓库物流和服务机器人等典型场景的优化方案,帮助开发者实现精准建图。

vulkan6gpu的博客 118

Java 发送邮件添加日历提醒,添加附件,添加文本

public class Test1 { public static void main(String[] args) { sendMeetingInvitationEmail(); } private static Properties props; private static Session session; public static void sendMeetingInvitationEmail() { try { .

飞奔的小强 1568

看不懂分子动力学模拟的结果?一文读懂RMSD曲线

随后,将每一帧结构与初始模板进行叠合,计算对应原子的平均偏移量,即RMSD。总之,掌握 RMSD 的解读方法,就等于抓住了评估分子动力学模拟成败与质量的“总开关”。①在模拟初始阶段,RMSD会从0迅速上升,这是蛋白质从静态晶体或模型结构释放到溶液环境中并逐渐适应的正常过程。②经过一段时间后,曲线不再系统性上升或下降,而是围绕一个平均值,小幅度地上下波动,形成一个稳定的“平台”。这种情况下,RMSD 在初始快速上升后,并未进入平台,而是持续甚至加速上升,始终未见收敛。🔍 如何解读不同趋势的RMSD曲线。

weixin_46587777的博客 4896

neruolib全脑建模计算框架

neurolib 是一个用python编写的全脑建模计算框架,也是可扩展的、允许轻松实现自定义神经质量模型,能够在介观尺度上表示脑区平均活动。

Rootfyx的博客 1149

Outlook 添加会议,EWS java api 向Exchange 服务器中创建日历会议

通过会议管理系统将客户会议信息发送到Exchange 服务系统日历中. 我写了个工具类如下: pom.xml <dependency> <groupId>com.microsoft.ews-java-api</groupId> <artifactId>ews-java-api</artifactId> <version>2.0</version>

佛系写BUG的博客 3339

保姆级教程:在Windows上用VS2019和OpenCV4.6搞定海康MV-EB435i RGBD相机图像采集

本文提供了一份详细的教程,指导如何在Windows环境下使用VS2019和OpenCV4.6配置海康MV-EB435i RGBD相机进行图像采集。从开发环境准备、SDK部署到代码移植和优化,涵盖了深度图与RGB图同步采集的实战技巧,帮助开发者快速上手工业级RGBD相机的应用开发。

weixin_28675557的博客 468

java邮件开发详解笔记(创建一个内嵌图片和附件的邮件)

package zxx.createMessage; import java.io.FileOutputStream; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import jav

后飞IT 1272

Calibre LVS 问题解析

LVS常见问题与解决办法

m0_61544122的博客 2万+

prometheus普罗米修斯集监控外部k8s

prometheus普罗米修斯集监控外部k8s

你是我一生的追求 2249

java解析eml文件_使用JavaMail解析EML文件详解

Java当我们在outlook中保存一个邮件是可以存成eml格式,这种格式是标准的邮件格式. 这种文件可以用JavaMail来解析。import java.util.*;import java.io.*;import javax.mail.*;import javax.mail.internet.*;public class ReadEmail {public static void main(S...

weixin_39765057的博客 697

【QNX+Android虚拟化方案】136 - QNX 侧 Coredump 文件解析

【QNX+Android虚拟化方案】136 - QNX 侧 Coredump 文件解析

|~~~热爱生活、努力学习的小伙汁~~~| 1910

java mail eml_javamail写带附件eml文件并调用outlook的方法 | 学步园

1 将邮件写入到文件的代码msg.saveChanges();File f = new File("d:/test.eml");msg.writeTo(new FileOutputStream(f));2 调用outlook的代码Process p = Runtime.getRuntime().exec("cmd /C start msimn.exe /eml:d:/test.eml");3 完整...

weixin_35363322的博客 281

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java eml 附件,使用JavaMail创建带附件的EML文件

I'll create a EML file with an attachment using JavaMail.I created a simple EML file successfully, but adding an attachment don't work properly. I'm going to add a PDF file. My EML file will be create...

weixin_39696197的博客 566

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java mail eml_Javamail写带附件eml文件并调用Outlook

1 将邮件写入到文件的代码msg.saveChanges();File f = new File("d:/test.eml");msg.writeTo(new FileOutputStream(f));2 调用outlook的代码Process p = Runtime.getRuntime().exec("cmd /C start msimn.exe /eml:d:/test.eml");3 完整...

weixin_39833270的博客 330

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

java eml 附件_Javamail怎样写带附件eml文件?

1 将邮件写入到文件的代码msg。saveChanges();File f = new File("d:/test。eml");msg。writeTo(new FileOutputStream(f));2 调用outlook的代码Process p = Runtime。getRuntime()。exec("cmd /C start msimn。exe /eml:d:/test。eml");3 完整...

weixin_32039589的博客 288

java mail eml_使用JavaMail解析EML文件

Java当我们在outlook中保存一个邮件是可以存成eml格式,这种格式是标准的邮件格式. 这种文件可以用JavaMail来解析。import java.util.*;import java.io.*;import javax.mail.*;import javax.mail.internet.*;public class ReadEmail {public static void main(S...

weixin_35689019的博客 940

java 怎么引用outlook_如何在Java ee项目中如何调用outlook发邮件?

java mail调用outlook的方法例子1 将邮件写入到文件的代码msg.saveChanges();File f = new File("d:/test.eml");msg.writeTo(new FileOutputStream(f));2 调用outlook的代码Process p = Runtime.getRuntime().exec("cmd /C start msimn.exe ...

weixin_33764387的博客 572

javamail邮件内容提取

这几天因为客户有要从邮件里面自动提取内容的需要,所以头痛的看来两天。目前找到两种方法: 第一个是脚本实现,如果你用的是outlook而不是outlook express, 那么就可以用脚本实现,  脚本如下(其实微软的网站上也能搜到)Sub writecsv() Const olFolderInbox = 6 Set objOutlook = CreateObject("O

anyfox的池塘 2662

Outlook邮件导入Notes竟然有这么多办法

Outlook邮件导入Notes竟然有这么多办法

XZZ_2018的博客 1649
上一篇: 网站在线人数的精确统计的个人看法
下一篇: 火狐下,表单无法刷新重置问题的分析与解决
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值