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

JMail发送excel附件到邮箱

    博客分类:
  • Java
阅读更多
//很久没有上javaeye,最近写了一个报表统计的发邮件的程序,感觉有一点实用的给大家共享一下吧,这里是一excel附件的形式发送邮件到qq邮箱
package com;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Message;
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;
public class MailService {

Session mailSession = null;

public  Session getMailSession() {
if (mailSession == null) {
Properties props = new Properties();  
props.put("mail.smtp.auth", "true");   
mailSession = Session.getInstance(props, null);
}
return mailSession;
}

public void sendAttachBySys(Map<String,List<String>> map,String fromEmail,String toEmail){ 
String subject = "测试excel邮件";
try {
getMailSession().setDebug( true );
Message msg = new MimeMessage( getMailSession() );
msg.setFrom( new InternetAddress( fromEmail ) );
msg.setRecipients( Message.RecipientType.TO, InternetAddress.parse( toEmail ) );
msg.setSubject( subject );
msg.setSentDate( new java.util.Date() );

//添加附件
Multipart mm = new MimeMultipart();
BodyPart mdp = new MimeBodyPart();  
StringBuffer sb = new StringBuffer();
sb.append( "第一列\t第二列\t第三列\n" );
if(map != null && !map.isEmpty()){
for(String key : map.keySet()){
List<String> list = map.get( key );
for(int i=0;i<list.size();i++){
String value = list.get( i );
if(i == 0){
sb.append( value );
}else{
sb.append( "\t"+value );
}

}
sb.append( "\n" );
}
}

DataHandler dh = new DataHandler(sb.toString(),"text/plain;charset=gb2312");
mdp.setFileName( "test.xls" );
mdp.setDataHandler( dh );
mm.addBodyPart( mdp );
msg.setContent(mm);
Transport transport = mailSession.getTransport("smtp");  
transport.connect("smtp.qq.com", "*****", "****");  
transport.sendMessage(msg, msg.getAllRecipients());  

}
catch( Exception ex ) {
ex.printStackTrace();
}
}

/**
* @param args
*/
public static void main( String[] args ) {
Map<String,List<String>> map = new HashMap<String, List<String>>();
List<String> list1=  new ArrayList<String>();
list1.add( "第2行第1列" );
list1.add( "第2行第2列" );
list1.add( "第2行第3列" );
List<String> list2=  new ArrayList<String>();
list2.add( "第3行第1列" );
list2.add( "第3行第2列" );
list2.add( "第3行第3列" );
map.put( "1", list1 );
map.put( "2", list2 );

MailService mailService = new MailService();
mailService.sendAttachBySys( map, "****@qq.com", "*****");
}

}


这个我测试成功了,但你首先要开启你的qq邮箱的SMTP服务,
进入qq邮箱->设置->帐户->POP3/IMAP/SMTP服务,里面的开启POP3/SMTP服务和开启IMAP/SMTP服务勾选上。
分享到:
评论
2 楼 chenshengzun 2013-10-25  
msg.setContent(mm);
修改成内容就可以了
1 楼 chenqqabcd 2013-10-22  
我想问下,怎么发送邮件内容呢,不是附件里的内容

相关推荐

    使用Jmail组件发送和接收邮件(含附件)

    在IT行业中,电子邮件是...总的来说,JMail组件提供了强大且灵活的邮件处理能力,无论是发送带有附件的邮件,还是从邮箱中下载附件,都可以轻松实现。理解并掌握上述步骤,你就能在Java项目中自如地处理邮件通信了。

    VFP利用JMAIL发送邮件及附件

    VFP利用JMAIL发送邮件及附件,纯代码,效果好VFP利用JMAIL发送邮件及附件,纯代码,效果好

    jmail发送HTML静态版

    6. **添加附件**:如果需要,可以通过jmail组件提供的方法添加附件,如PDF文档、图片等。 7. **发送邮件**:最后,调用组件的发送函数,将邮件发送出去。发送过程可能需要处理网络延迟或服务器验证等问题。 8. **...

    使用JMAIL留言发至邮箱

    在这个场景中,我们将深入探讨如何使用JMail将留言从一个网站发送到指定的邮箱。 首先,我们来看标题"使用JMAIL留言发至邮箱",这表明我们要讨论的核心是利用JMail ASP组件处理网站上的用户留言,并通过电子邮件将...

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

    Jmail是一个强大的邮件组件,它能够方便地集成到各种应用程序中,包括Excel,以实现自动化邮件发送。 首先,为了使用Jmail控件,我们需要将其注册到系统中。在提供的文件列表中,“注册Jmail组件.bat”就是这样一个...

    利用Jmail组件发送Email

    除了基本的邮件设置,Jmail还提供了附件功能,你可以使用`AddAttachment`方法添加文件: ```vbscript jMail.AddAttachment "C:\path\to\file.txt" ``` 为了发送邮件,你需要配置SMTP服务器信息,如下所示: ```...

    jmail表单发送邮件

    综上所述,`Jmail表单发送邮件`涉及到了ASP编程、JMail组件的使用以及Web表单的交互,这些知识点对于构建基于ASP的邮件系统至关重要。在实际应用中,还需要根据具体需求进行定制和优化,以满足不同场景下的邮件发送...

    易语言:jmail发送HTML静态版

    5. **添加附件**:如果需要,你可以通过JMail的API添加附件,比如PDF文件、图片等,增强邮件的实用性。 6. **发送邮件**:最后,调用JMail的发送方法,执行邮件发送操作。这个过程可能涉及网络连接和认证,需要处理...

    Jmail +excel 收发邮件

    用户JMAIL组件通过EXCEL发送邮件.

    利用Jmail发送邮件:

    ### 使用Jmail发送与接收邮件的关键技术点 #### 发送邮件 在提供的代码片段中,主要涉及了如何使用Jmail库来实现邮件的发送功能。Jmail是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细...

    JMAIL发送邮件

    通常情况下,JMAIL可以通过官方提供的安装包进行安装,也可以通过NuGet包管理器添加到项目中。 #### 三、发送邮件的代码解析 ##### 1. 定义函数 ```vb Public Function SendMail(MailAddress, LoginName, ...

    Excel读取Jmail成绩单群发

    通过设置SMTP服务器配置,程序可以连接到邮件服务器,将成绩单以附件或正文的形式发送给每个学生的邮箱。 出错处理是任何可靠系统的关键部分。在这个程序中,可能遇到的错误包括:邮件格式错误、SMTP服务器连接问题...

    Jmail ASP留言提交表单发送到邮箱

    ### Jmail ASP留言提交表单发送到邮箱 #### 概述 在Web开发领域,特别是对于基于经典ASP(Active Server Pages)的应用系统来说,实现用户留言功能并将其发送至管理员邮箱是一项常见且实用的需求。本篇文章将详细...

    JMAIL邮件发送示例代码C++

    本文将详细讲解如何使用C++语言结合JMAIL库实现邮件发送功能,以及通过126邮箱进行测试的过程。 首先,我们需要了解JMAIL库。JMAIL是一个用于SMTP(简单邮件传输协议)的C++库,它提供了方便的API接口,使得开发者...

    jmail发送邮件

    在IT领域,尤其是在Web开发与应用中,电子邮件的发送是一个常见的功能需求,它涉及到系统与用户的交互、通知、验证等多个方面。本文将基于给定的文件信息,深入解析使用JMail组件发送邮件的关键知识点,包括代码解读...

    vb jmail发送邮件

    2. 在打开的组件对话框中,浏览到JMail.DLL所在的位置并添加它。如果没有安装JMail,需要先下载并安装。 接着,你需要创建JMail对象,并设置邮件的基本属性。以下是一个简单的示例: ```vb Dim jmail As New JMail...

    VC通过jmail.dll发送带附件的邮件

    在VC++ 6.0开发环境中,通过使用第三方库如JMail,我们可以实现发送带有附件的电子邮件功能。JMail是一个ActiveX控件,由Jasc Software公司开发,它提供了丰富的邮件处理功能,包括发送、接收邮件,以及添加附件等。...

    VC++、MFC使用Jmail组件自动发送邮件带附件(源代码)

    2、程序使用jmail组件进行邮件的发送,支持发送附件。 3、发送者邮箱必须开通smtp服务,使用网页登录发送者邮箱进行设置,不同的邮箱服务提供商开启方法不一样,详情百度。 4、本程序可以根据设定的收件人邮箱规则...

    asp.net中使用Jmail发送邮件

    安装完成后,Jmail的DLL文件将会被添加到你的.NET Framework的全局程序集缓存(GAC)中,可供你的ASP.NET项目引用。 接下来,要在ASP.NET中使用Jmail发送邮件,首先要在你的Web.config文件中配置Jmail的相关设置。...

Global site tag (gtag.js) - Google Analytics