`
New.Mars
  • 浏览: 917 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaMail发送带附件的邮件&&发送一封本地邮件

阅读更多
以下是实现了,JavaMail发送邮件及附件的code.

package com.mail;  
import java.util.Date;  
import java.util.Properties;  
import javax.activation.DataHandler;  
import javax.activation.FileDataSource;  
import javax.mail.Message;  
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 Html_File_InnerFile {  
    public static void main(String[] args) throws Exception {  
        Properties props = new Properties();  
        props.put( "mail.smtp.host ", "smtp.qq.com ");  
        props.put("mail.smtp.auth", "true");  
        Session session = Session.getInstance(props);  
        Message message = new MimeMessage(session);  
        InternetAddress from = new InternetAddress("zheng.magic@qq.com");  
        from.setPersonal(MimeUtility.encodeText("new mars<zheng.magic@qq.com>"));  
        message.setFrom(from);  
        InternetAddress to = new InternetAddress("zheng.magic@qq.com");  
        message.setRecipient(Message.RecipientType.TO, to);  
        message.setSubject(MimeUtility.encodeText("测试邀请!"));  
        message.setSentDate(new Date());  
        MimeMultipart msgMultipart = new MimeMultipart("mixed");// 指定为混合关系  
        message.setContent(msgMultipart);  
        // 邮件内容  
        MimeBodyPart htmlPart = new MimeBodyPart();  
        htmlPart.setContent(  
                        "<body>"  
                                + "<div style='position: absolute; left: 390px; top: 150px;height: "  
                                + "100px;width: 200px;' align='center'>"  
                                + "<font color='red'>这是测试邮件,请勿回复</font>" + "</div></body>",  
                        "text/html;charset=UTF-8");  
        // TODO 组装的顺序非常重要,一定要先组装文本域,再组装文件  
        msgMultipart.addBodyPart(htmlPart);  
        // 组装附件  
        MimeBodyPart file = new MimeBodyPart();  
        FileDataSource file_datasource = new FileDataSource("E:\\emailtext.zip");  
        DataHandler dh = new DataHandler(file_datasource);  
        file.setDataHandler(dh);  
        // 附件区别内嵌内容的一个特点是有文件名,为防止中文乱码要编码  
        file.setFileName(MimeUtility.encodeText(dh.getName()));  
        msgMultipart.addBodyPart(file);       
        message.saveChanges();  
        Transport transport = session.getTransport("smtp");  
        transport.connect("smtp.qq.com", 25, "zheng.magic", "123456");  
        transport.sendMessage(message, message.getAllRecipients());  
        transport.close();  
        System.out.println("发送完毕");  
    }  
}  

这里是保存email邮件到本地的code
package com.mail;  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.OutputStream;  
import java.util.Date;  
import java.util.Properties;  
import javax.mail.Message;  
import javax.mail.Session;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeMessage;  
import javax.mail.internet.MimeUtility;  
/** 
 * @说明 保存一个邮件 
 * @author zhengqiang
 * @version 1.0 
 * @since 
 */  
public class TextMail {  
    public static void main(String[] args) throws Exception {  
        Properties props = new Properties();  
        props.put( "mail.smtp.host ", "smtp.qq.com ");  
        props.put("mail.smtp.port", 25);  
        props.put("mail.smtp.auth", "true");  
        Session session = Session.getInstance(props);  
        session.setDebug(true);  
        Message message = new MimeMessage(session);  
        InternetAddress from = new InternetAddress("zheng.magic@qq.com");  
        from.setPersonal(MimeUtility.encodeText("new.mars<zheng.magic@qq.com>"));  
        message.setFrom(from);  
        InternetAddress to = new InternetAddress("zheng.magic@qq.com");  
        message.setRecipient(Message.RecipientType.TO, to);  
        message.setSubject(MimeUtility.encodeText("测试邀请!"));  
        message.setText("强哥邀请你访问我的博客:http://New.Mars.iteye.com/!");  
        message.setSentDate(new Date());  
        // 邮件对象  
        File file = new File("E:\\textmail.eml");  
        // 获得输出流  
        OutputStream ips = new FileOutputStream(file);  
        // 把邮件内容写入到文件  
        message.writeTo(ips);  
        // 关闭流  
        ips.close();          
        System.out.println("发送完毕");  
    }  
}  

好咯,上面是保存email到本地了,
现在嘞。我们就来看下如何发送本地email的邮件啦!
package com.mail;  
import java.io.File;  
import java.io.FileInputStream;  
import java.util.Date;  
import java.util.Properties;  
import javax.mail.Message;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.MimeMessage;  
/** 
 * 发送一封本地的邮件 
 * @author zheng.magic@qq.com 
 */  
public class SendCurrentMail {  
    public static void main(String[] args) throws Exception {  
        Properties props = new Properties();  
        props.put("mail.smtp.auth", "true");  
        Session session = Session.getInstance(props);  
        // 现有邮件文件  
        File file = new File("E:\\textmail.eml");  
        FileInputStream fis = new FileInputStream(file);  
        // 创建邮件对象  
        Message message = new MimeMessage(session, fis);  
        message.setSentDate(new Date());          
        message.saveChanges();  
        // 发送邮件  
        Transport transport = session.getTransport("smtp");  
        transport.connect("smtp.qq.com", 25, "zheng.magic", "123456");  
        transport.sendMessage(message, message.getAllRecipients());  
        transport.close();  
        fis.close();  
        System.out.println("发送完毕");  
    }  
}  

分享到:
评论

相关推荐

    android使用javamail发送邮件jar包

    3. **编写邮件发送代码**:下面是一个简单的示例,展示了如何使用JavaMail发送一封纯文本邮件: ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.example.com"); props.put(...

    javamail 收发电子邮件

    在JavaMail中,我们不仅可以发送纯文本邮件,还可以发送HTML格式的邮件、带有附件的邮件,甚至可以进行复杂的邮件会话管理和联系人操作。 1. SMTP 协议:SMTP 是互联网上传输电子邮件的标准协议。JavaMail 使用 `...

    基于javamail接收邮件源代码

    JavaMail 是一个开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一套API,使得开发者能够方便地处理SMTP、POP3和IMAP等邮件协议。在给定的标题和描述中,我们讨论的是如何使用JavaMail API来接收邮件...

    java开发实现163邮件发送(支持附件

    `Message`对象代表一封邮件,通过`MimeMessage`类实例化。设置发件人、收件人、主题和正文。若需发送附件,可使用`MimeBodyPart`和`MimeMultipart`来组合文本和附件。 6. **添加附件** 要发送附件,首先创建一个`...

    JavaMail(JAVA邮件服务器)API详解 chm.rar

    使用JavaMail API的内容会涵盖实际的代码示例,比如如何创建和发送简单的文本邮件、带有附件的邮件,以及如何接收和读取邮件。这部分还会涉及到认证机制,如如何设置用户名和密码进行SMTP身份验证,以及SSL/TLS安全...

    关于JavaMail和James邮件基础

    2. **Message对象**:表示一封邮件,可以设置主题、正文、附件、抄送和密送人等。 3. **Transport对象**:负责实际的邮件发送,通过 `Transport.send(Message)` 方法将邮件发送到指定的邮件服务器。 4. **Folder对象...

    JavaMail-收发邮件支持包

    2. **邮件服务验证**:验证用户输入的邮箱地址是否有效,通过尝试发送一封测试邮件并检查返回的状态。 3. **批量邮件**:批量发送新闻通讯或营销邮件。 4. **邮件备份**:从远程服务器下载邮件到本地存储,以实现...

    james_javamail邮件服务学习

    4. **Message对象**:Message对象代表一封邮件,可以通过`Message.RecipientType`定义收件人类型(如TO、CC、BCC),并使用`Message.setFrom()`, `Message.setRecipients()`, `Message.setText()`等方法填充邮件内容...

    可带附件的复杂邮件发送实例

    通过以上步骤,你可以成功地使用JavaMail API发送一封包含多个附件、HTML内容和嵌入式图片的复杂邮件。在实际应用中,你需要根据实际情况调整邮件的各个部分,例如替换SMTP服务器、邮箱地址、附件路径和HTML内容等。...

    javaMail收发邮件经典程序

    总的来说,JavaMail库为Java开发者提供了强大的邮件处理功能,包括发送带附件的邮件、指定多个发送人以及接收和保存邮件附件等。通过学习和理解上述代码,你将能够灵活地实现自己的邮件系统。在实际应用中,还需要...

    javamail-1.4.3源码

    1. **Message 类**:代表一封邮件,包含了邮件的头信息(如发件人、收件人、主题)和邮件内容。开发者可以使用`Message`类的构造函数创建新邮件,或者从邮件服务器获取已有的邮件。 2. **Session 类**:每个...

    JavaMail API详解.txt

    - `javax.mail.Message`:代表一封邮件,可以是发送的也可以是接收的。 - `javax.mail.Address`:表示邮件地址,包括发件人、收件人等。 - `javax.mail.Authenticator`:用于认证过程,如用户名和密码验证。 -...

    基于Javamail的邮件收发系统-project

    - **Message**:表示一封邮件,包含了邮件的所有内容,如主题、正文、附件等。 - **Transport**:用于发送Message到SMTP服务器。 - **Store** 和 **Folder**:这两个组件用于从POP3或IMAP服务器接收和管理邮件。...

    android 下gmail邮件包括附件发送和接收

    总之,Android平台下处理Gmail邮件发送和接收涉及多个步骤,包括构建邮件、添加附件、获取用户授权、连接SMTP/IMAP服务器以及解析邮件内容。理解这些概念和方法对于开发涉及邮件功能的Android应用至关重要。

    Java 开发基于Javamail的邮件收发系统(系统+论文+开题报告+任务书+外文翻译+文献综述+答辩PPT).rar

    - `Message`:表示一封邮件,包含了邮件的各个部分,如主题、正文、附件等。 - `MimeMessage`:MIME(多用途互联网邮件扩展)类型的邮件,支持多种格式的附件和编码。 - `Transport`:负责实际的邮件发送操作。 ...

    javaMail实例

    JavaMail 是一个强大的开源库,用于在 Java 应用...通过以上步骤和代码,你可以构建一个功能完备的 JavaMail 示例,实现文件上传、普通邮件发送和带附件邮件的发送。这将极大地提升你的 Java 应用程序的邮件处理能力。

    利用JavaMail实现邮件的收取.doc

    JavaMail 是一个用于处理电子邮件的开源库,它提供了发送和接收邮件的功能。本文将详细讲解如何使用JavaMail API来实现邮件的收取。 首先,我们需要了解一些基本配置。在示例代码中,创建了一个名为 `Config` 的...

    javamail-1_3_1-upd.zip

    9. **异步邮件处理**:虽然JavaMail 1.3.1可能不包含后来版本引入的异步邮件处理特性,但基本的邮件发送操作可以通过多线程实现异步处理。 10. **国际化和本地化**:JavaMail支持多种语言和字符集,确保邮件内容在...

    javamail资料

    主要的接口包括 `Session`(配置邮件会话)、`Message`(代表一封邮件)、`Transport`(负责邮件的发送)和`Folder`(用于操作邮箱中的邮件)。 2. **邮件会话**:`Session` 类是邮件操作的基础,它包含了邮件发送...

    java Swing 邮件发送(群发)

    以上代码演示了如何配置SMTP服务器、创建和发送一封简单的邮件。 9. **测试与调试**: 发送邮件功能在本地开发环境中可能需要特殊的配置,例如开启SMTP服务器的调试模式或使用模拟SMTP服务器进行测试。 通过上述...

Global site tag (gtag.js) - Google Analytics