`
gaojingsong
  • 浏览: 1181927 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【JAVAMAil之带附件发送邮件】

阅读更多

package cn.com.test.mail;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.OutputStream;

import java.util.Properties;

 

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Message;

import javax.mail.Message.RecipientType;

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.util.ByteArrayDataSource;

 

/**

 * 创建一个复杂的邮件,这个邮件包括一段正文和两个附件

 * 其中正文要包含一张图片

 * @author Administrator

 *

 */

public class Demo3 {

 

public static void main(String[] args) throws Exception {

//发件人地址

    String senderAddress = "xxxxx@.com";

   //收件人地址

   String recipientAddress = "zzzzzz@.com";

   //发件人账户名

   String senderAccount = "xxxxx@.com";

   //发件人账户密码

   String senderPassword = "$#@FEFE#";

 

 

 

 

Properties props = new Properties();

props.setProperty("mail.smtp.auth", "true");

props.setProperty("mail.transport.protocol", "smtp");

 

Session session = Session.getInstance(props);

session.setDebug(true);

 

Message msg = new MimeMessage(session);

/*邮件消息头设置*/

msg.setFrom(new InternetAddress(senderAddress));

msg.setRecipients(RecipientType.TO, InternetAddress.parse(recipientAddress));

msg.setSubject("From gaojingsong 这是一封复杂邮件");

 

/*邮件消息内容设置,包括两个附件和一段正文*/

Multipart msgPart = new MimeMultipart("mixed");

msg.setContent(msgPart);

 

MimeBodyPart body = new MimeBodyPart();     //表示正文

MimeBodyPart attach1 = new MimeBodyPart();  //表示附件1

MimeBodyPart attach2 = new MimeBodyPart();  //表示附件2

msgPart.addBodyPart(body);

msgPart.addBodyPart(attach1);

msgPart.addBodyPart(attach2);

 

/*以下为设置正文*/

/*正文是文字和图片混合的*/

Multipart contentPart = new MimeMultipart("related");

body.setContent(contentPart);

MimeBodyPart content = new MimeBodyPart(); //文字

MimeBodyPart img = new MimeBodyPart();     //图片

contentPart.addBodyPart(content);

contentPart.addBodyPart(img);

 

ByteArrayDataSource fileds = new ByteArrayDataSource(new FileInputStream("F:/micro_workspace/mail/src/main/java/50.jpg"),"application/octet-stream");  

        DataHandler imgDataHandler = new DataHandler(fileds);

//DataSource imgds = new FileDataSource("D:\\picture\\jpg\\touxiang.jpg");

//DataHandler imgDataHandler = new DataHandler(imgds);

img.setDataHandler(imgDataHandler);

//注意:Content-ID的属性值一定要加上<>,不能是touxiang.jpg

img.setHeader("Content-ID", "<touxiang.jpg>");

//为图片设置文件名,有的邮箱会把html内嵌的图片也当成附件

img.setFileName("touxianga.jpg");

//设置文字内容

/**

* 注意:在html代码中要想显示刚才的touxiang.jpg

* src里不能直接写Content-ID的值,要用cid:这种方式

*/

content.setContent("<div style='color:red;font-size:18px;'>http://gaojingsong.iteye.com/</div>:" +

"我这里有一张图片<img src='cid:touxiang.jpg' alt='touxiang' " +

"width=\"30px\" height='40px' />,好看吗?", "text/html;charset=utf-8");

/*正文内容设置结束*/

 

/*下面为设置附件*/

attach1.setDataHandler(new DataHandler(new FileDataSource("F:/micro_workspace/mail/src/main/java/cn/com/test/mail/App.java")));

attach1.setFileName("file1.txt");

attach2.setDataHandler(new DataHandler(new FileDataSource("F:/micro_workspace/mail/src/main/java/2018-07-29_182356.jpg")));

attach2.setFileName("file2.jpg");

 

msg.saveChanges();

//把邮件以文件的形式写入到磁盘

OutputStream os = new FileOutputStream("C:\\demo.eml");

msg.writeTo(os);

os.close();

 

Transport trans = session.getTransport();

trans.connect("smtp.服务器", 25, senderAccount, senderPassword);

trans.sendMessage(msg,msg.getAllRecipients());

 

}

}

 

 

  • 大小: 191.8 KB
0
0
分享到:
评论

相关推荐

    06 使用JavaMail发送带附件的邮件.exe

    06 使用JavaMail发送带附件的邮件.exe06 使用JavaMail发送带附件的邮件.exe

    JavaMail(3)——发送带附件的邮件.docx

    使用 `Transport.send()` 方法发送邮件: ```java Transport.send(mailMessage); ``` 以上就是使用JavaMail发送带有附件的邮件的基本步骤。这个过程需要正确配置邮件服务器的属性,如SMTP服务器地址、端口、用户名...

    JavaMail发送带附件的邮件

    6. **发送邮件**:最后,使用Transport类的send方法发送邮件。 ```java Transport.send(message); ``` 以上就是使用JavaMail发送带附件的邮件的基本流程。需要注意的是,实际应用中可能需要处理更多复杂情况,...

    james和javamail实现邮件收发(带发送附件)

    下面是一个简化的JavaMail发送邮件的过程: 1. **配置邮件会话**:首先,我们需要创建一个`Properties`对象,并设置SMTP服务器的相关参数,如主机名和端口号。然后,通过`Session.getInstance()`方法初始化一个邮件...

    Gmail邮件通过JavaMail发送(不带附件与带一个附件)

    本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...

    JavaMail邮件发送(带附件)

    JavaMail邮件发送(带附件)

    JavaMail发送邮件(文本、html、附件)

    这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、HTML和包含附件的邮件,以及在实际应用中需要注意的配置步骤。 1. *...

    javamail 可带附件demo 源码

    这个源码示例是关于如何使用JavaMail来发送带有附件的邮件。JavaMail API 遵循JSR 54规范,使得开发者能够处理复杂的邮件功能,如SMTP、POP3和IMAP协议,以及HTML邮件和多部分消息(包括附件)。 首先,我们需要...

    javamail实现邮箱与邮箱发送邮件

    本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送邮件的流程。 首先,确保你的项目中已经包含了JavaMail所需的依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,如果你...

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    ### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...

    使用JAVAMail代发邮件

    在设置好 MailInfo 对象后,我们可以使用 JavaMail 库来发送邮件。我们可以使用 Transport 对象来发送邮件, Transport 对象是 JavaMail 库中的一个核心对象,用于发送和接收电子邮件。我们可以使用 Transport 对象...

    javamail发送邮件(带附件)

    这个教程将详细介绍如何使用 JavaMail API 实现发送带有附件的邮件功能,并以 QQ 邮件服务器为例进行设置。 首先,我们需要引入 JavaMail 相关的依赖库。在 Maven 项目中,可以在 `pom.xml` 文件中添加以下依赖: ...

    使用JavaMail创建邮件和发送邮件

    在JavaMail中,创建和发送邮件涉及到对邮件标准的理解,如RFC882和MIME协议。 RFC882 是一个早期的定义电子邮件格式的文档,规定了邮件的基本结构,包括邮件头和邮件体。邮件头包含了诸如发件人(from)、收件人...

    javamail 回执邮件资料

    回执邮件是邮件服务中的一项功能,它允许发件人在发送邮件后得知收件人是否已阅读邮件。本资料包主要涵盖了使用 JavaMail 实现回执邮件以及相关邮件操作的知识点。 首先,发送带有回执请求的邮件是通过设置邮件头...

    oracle 发送带附件的邮件

    在Oracle中发送邮件时,我们可能需要借助JavaMail API,这是一个开源库,允许开发者在Java应用中创建和发送电子邮件。JSP可以调用JavaMail API的类和方法来实现邮件的发送,包括添加附件。在`SendMail.jsp`中,你...

    JavaMail发送邮件的例子

    下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...

    JavaMail实现邮件发送功能,可发送、抄送、密送多人,支持多附件的发送

    通过以上步骤,你就可以利用 JavaMail 实现功能完备的邮件发送了,包括向多个人发送邮件、设置抄送和密送,以及添加多个附件。注意,实际使用时,你需要根据你的邮件服务提供商调整相应的配置参数,例如对于其他邮箱...

    jsp/servlet javamail 发送邮件 可发送多个附件

    在这个例子中,Servlet可能解析请求参数,构造MIMEMessage,然后使用Session(JavaMail API的一部分)的Transport.send方法发送邮件。 8. **安全性**: 在处理用户上传的附件时,需要注意安全问题,如防止恶意文件的...

    javamail发送邮件.zip

    这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...

Global site tag (gtag.js) - Google Analytics