`
windonly
  • 浏览: 16464 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JMail 简单应用-文件传输

阅读更多
    日常工作中,常常要将在公司做的东西拷回家,或者要从家里拷东西到公司,但是如果用U盘拷又太麻烦,上web发邮件又有点烦,所以就做了下面的小程序,发送前切版里的内容到指定邮箱来传递文件.
    相关技术点:
    1.JMail邮件发送
    2.剪切板提取
   具体代码实现如下:
<!---->/*
 * Created on 2008-3-5
 
*/
package org.dueam.ft;

import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;

import sun.misc.BASE64Encoder;

/**
 * 剪切板内容发生
 * 
@author <a href="mailto:windonly@gmail.com">Anemone</a>
 * hz,zj,china(2008-3-5)
 
*/
public class ClipboardFileTransmission {

    
/**
     * 
@param args
     * 
@throws EmailException
     * 
@throws IOException
     * 
@throws UnsupportedFlavorException
     * 
@throws HeadlessException
     
*/
    @SuppressWarnings(
"unchecked")
    
public static void main(String[] args) throws EmailException, HeadlessException, UnsupportedFlavorException,
            IOException {
        String context 
= null;
        List
<File> fileList = null;
        
/**
         * 处理前切版
         
*/
        
for (DataFlavor df : Toolkit.getDefaultToolkit().getSystemClipboard().getAvailableDataFlavors()) {
            
//如果拷贝的是文本内容
            if (df.equals(DataFlavor.stringFlavor)) {
                context 
= (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
            }
            
else if (df.equals(DataFlavor.javaFileListFlavor)) {
                
//如果拷贝的是文件则当附件发送
                fileList = (List<File>) Toolkit.getDefaultToolkit().getSystemClipboard().getData(
                        DataFlavor.javaFileListFlavor);
            }
        }
        
if ((null == context || "".equals(context)) && (fileList == null || fileList.isEmpty())) {
            
return;
        }
        
if (null == context || "".equals(context)) {
            context 
= "具体资料请看附件";
        }

        MultiPartEmail email 
= new MultiPartEmail();
        
        
// 发送服务器
        email.setHostName("smtp.163.com");
        
//服务器用户和密码(如果你自己搞了台不用验证的邮件服务器就不用了)
        email.setAuthentication("XXX""XXX");
        
//接收的邮箱
        email.addTo("XXX@gmail.com""我的资料库");
        
//发送服务器的邮件地址,现在很多邮件提供商都有验证这个同用户名是否对应,还是老老实实填真实的吧
        email.setFrom("XXX@163.com""Anemone");
        email.setSubject(
"[日常资料传递]-" + getTime());
        
//文本编码
        email.setCharset("utf-8");
        email.setMsg(context);
        
if (null != fileList)
            
for (File f : fileList) {
                
if (f.exists() && f.isFile()) {
                    
//处理附件
                    EmailAttachment attachment = new EmailAttachment();
                    attachment.setPath(f.getPath());
                    attachment.setDisposition(EmailAttachment.ATTACHMENT);
                    attachment.setDescription(getTime() 
+ "By Anemone");
                    BASE64Encoder enc 
= new BASE64Encoder();
                    
//附件中文名问题
                    attachment.setName("=?GBK?B?" + enc.encode(f.getName().getBytes()) + "?=");
                    email.attach(attachment);
                }
            }

        email.send();

    }

    
public static String getTime() {
        SimpleDateFormat df 
= new SimpleDateFormat("yyyy-MM-dd HH:mm");
        
return df.format(new Date());
    }

}
以上代码在163和gmail之间测试通过过,建议用exe4j打成EXE文件,然后扔到system32目录下面,这样只要想发送资料的时候,只要复制下资料,再执行下这个命令就一切都OK了.
相关类包:下载


分享到:
评论

相关推荐

    JMail组件--JMail45

    1. **引入组件**:首先在项目中引入JMail45的库文件,通常是通过添加引用或者导入jar包来完成。 2. **实例化JMail对象**:创建JMail类的实例,设置SMTP服务器信息,包括服务器地址、端口号、用户名和密码。 3. **...

    jmail commons-email-1.1.rar

    标题中的"jmail commons-email-1.1.rar"是一个压缩包文件,包含了两个重要的Java库:jmail和commons-email的1.1版本。这个压缩包对于处理Java消息服务(Java Message Service, JMS)的开发者来说是至关重要的,因为...

    jmail.dll文件

    《深入理解jmail.dll文件及其在IT应用中的重要性》 jmail.dll文件是Windows操作系统中一个重要的动态链接库(Dynamic Link Library),它主要用于支持与电子邮件相关的功能,尤其是与JMail软件的集成。JMail是一款...

    jmail 4.5 组件(jmail.dll 4.5.0.0)

    JMail 4.5 组件是一款用于在应用程序中实现电子邮件功能的组件,主要通过引用其核心组件jmail.dll 4.5.0.0来实现。这个组件为开发者提供了便捷的方式来发送邮件,包括HTML格式的邮件,附件,甚至进行SMTP验证和SSL...

    jmail pro4.4组件

    它提供了一种简单、高效的方式来集成电子邮件功能到Web应用程序中。JMail Pro 4.4 版本是其专业版,相较于免费版,它提供了更完整、更稳定的服务,特别是对于接收邮件的支持,这是免费版可能无法实现的。 1. **电子...

    Jmail.dll文件

    **Jmail.dll 文件详解** **一、Jmail.dll 概述** Jmail.dll 是一个重要的动态链接库(Dynamic Link Library)文件,它属于 ...在实际应用中,应结合 "jmail.txt" 文件提供的详细资料,以充分利用 Jmail 的各项功能。

    jmail.dll 发布邮件的dll文件

    Jmail.dll 文件通常与ASP(Active Server Pages)脚本一起使用,为基于Web的应用程序提供邮件发送能力。 **邮件发送功能** Jmail 是一个强大的邮件组件,它提供了丰富的API接口,允许开发者在ASP页面上轻松实现...

    Jmail发邮件的库文件(可以群发)

    通过导入JMail库,开发者能够轻松地在自己的应用程序中集成邮件发送功能,无需深入了解SMTP(Simple Mail Transfer Protocol)等底层邮件传输协议的细节。 JMail库提供了丰富的API接口,支持创建、编辑和发送邮件,...

    VBA:借助jmail控件一键发送邮件

    它可以直接通过SMTP(简单邮件传输协议)发送邮件,无需通过像Foxmail这样的客户端程序。这意味着,无论用户是否安装了Foxmail或其他客户端,只要网络连接可用,VBA脚本都能通过Jmail发送邮件。 提供的文件“Jmail...

    JMail JMail

    4. **ikernel.ex_**:这是一个部分文件,可能是因为文件传输不完整或者是被截断的ikernel.exe,它是InstallShield安装引擎的一部分,用于执行安装过程。 5. **Setup.exe**:这是主安装程序执行文件,负责启动和引导...

    jmail.dll 下载

    DLL文件是Windows操作系统中用于封装一组相关功能的共享库,开发者可以在自己的应用程序中调用这些功能,而无需重新编写代码。 1. **jmail.dll**:这是一个专门用于ASP.NET应用中的邮件发送组件,提供了方便的接口...

    jmail4.3.rar

    Jmail 4.3作为一款邮件服务器组件,它的主要功能可能包括SMTP(简单邮件传输协议)和POP3(邮局协议)的支持,允许用户通过Web界面发送和接收邮件。此外,它可能还提供了API接口,以便开发者能够轻松地将其集成到...

    Jmail 4.4.0 Free Edition

    1. **SMTP 邮件发送**:Jmail 支持使用简单邮件传输协议 (SMTP) 直接发送邮件,允许开发者构建能够发送邮件的应用程序,无需用户通过Web界面操作。 2. **多协议支持**:除了SMTP,Jmail可能还支持其他邮件传输协议...

    jmail发信的软件源码

    JMail是一款在VB环境中广泛使用的邮件发送组件,它允许开发者通过编程的方式发送电子邮件,包括SMTP(简单邮件传输协议)和POP3(邮局协议)等服务。 【描述】"jmail发信VB很实用的源码,精心挑选的精品源码"暗示了...

    Jmail .NET v1.1

    这允许它直接与邮件服务器交互,执行SMTP(简单邮件传输协议)通信,从而确保邮件的正确发送。 在提供的压缩包子文件名称列表中,我们看到有两个文件: 1. "jmailnet_free.msi":这是一个Microsoft Installer(MSI...

    JMail

    **JMail** 是一款专为Java开发者设计的邮件发送组件,它提供了丰富的API接口,使得在Java应用程序中发送电子邮件变得简单而高效。JMail支持SMTP、POP3和IMAP等多种邮件协议,允许开发者构建功能强大的邮件系统,如...

    JMAIL 4.5 dll+JMAIL4.4.dll

    1. **邮件发送功能**:JMAIL支持通过SMTP(简单邮件传输协议)发送邮件,可以设置发件人、收件人、抄送人、密送人等参数,还可以添加附件、设置邮件主题和正文内容。 2. **多语言支持**:JMAIL通常能处理多种字符集...

    JMail可收可发

    通常,通过运行这个MSI文件,用户可以安装必要的组件和设置,使得开发环境或应用程序能够识别并使用JMail。 3. **说明.txt**:这个文本文件很可能是JMail的使用指南或快速入门文档,里面可能包含了如何配置和使用...

    简单易用的jmail邮件发送系统

    2. **SSL/TLS加密**:为了保证邮件的安全性,Jmail支持SSL(Secure Socket Layer)和TLS(Transport Layer Security)加密,确保邮件在传输过程中不被窃取或篡改。 3. **多语言支持**:Jmail可以处理多种语言的邮件...

Global site tag (gtag.js) - Google Analytics