-
JavaMail 发送邮件 正文中包含图片3
以下是我的代码
package cn.itcast.javamail2;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.PasswordAuthentication;
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 Demo5 {
public static void main(String[] args) throws Exception{
Properties props = new Properties();
//不是接受邮件服务器需要验证
props.setProperty("mail.smtp.auth", "true");
//添加传输协议
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.126.com");//登录发送邮件服务器
//登录发送邮件服务器验证 每次都返回一个新的对象
Session session = Session.getInstance(props,
new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication("loginEmailUserName","loginEmailUserPwd");
}
}
);
session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
//邮件发件人
msg.setFrom(new InternetAddress("\"" + MimeUtility.encodeText("我") + "\" <EmailSender>"));
msg.setSubject("Testest?");
//邮件接收人
msg.setRecipients(RecipientType.TO, InternetAddress.parse(MimeUtility.encodeText("老婆") + " <EmailReceiver1>," +
MimeUtility.encodeText("我") + " <EmailReceiver12>"));
//整个邮件的组成方式
MimeMultipart msgMultipart = new MimeMultipart("mixed");//邮件的组成方式
msg.setContent(msgMultipart);
MimeBodyPart attch1 = new MimeBodyPart(); //附件1
MimeBodyPart content = new MimeBodyPart(); //正文
msgMultipart.addBodyPart(attch1);
msgMultipart.addBodyPart(content);
//附件
DataSource ds1 = new FileDataSource("D:\\附件1.txt" );
DataHandler dh1 = new DataHandler(ds1 );
attch1.setDataHandler(dh1);
attch1.setFileName(MimeUtility.encodeText("中文附件名.txt"));
//邮件正文 邮件正文之间的组成方式
MimeMultipart bodyMultipart = new MimeMultipart("related");
content.setContent(bodyMultipart);
MimeBodyPart htmlPart = new MimeBodyPart();
MimeBodyPart gifPart = new MimeBodyPart();
bodyMultipart.addBodyPart(htmlPart);
bodyMultipart.addBodyPart(gifPart);
DataSource gifds = new FileDataSource("D:\\正文中的图片1.png");
DataHandler gifdh = new DataHandler(gifds);
gifPart.setDataHandler(gifdh);
gifPart.setHeader("Content-Location", "http://www.aa.cn/logo.gif");
htmlPart.setContent("邮件正文!<img src='http://www.aa.cn/logo.gif'>'>", "text/html;charset=utf-8");
msg.saveChanges();
Transport.send(msg);
}
}
现在的问题是,邮件能够发送,但是收件人的邮箱中正文以附件的形式显示,请大家帮我看看,谢谢了
问题补充:wangqj 写道http://www.blogjava.net/sunfruit/archive/2008/12/25/77086.html
参考一下
我的问题是正文中有图片,但是在发到126或者163的邮箱中,确以附件的方式显示2012年3月20日 17:35
2个答案 按时间排序 按投票排序
-
msgMultipart.addBodyPart(attch1);
msgMultipart.addBodyPart(content);
邮件的组装方式,一般是正文在前面添加,附件在后面,要不正文会出现在附件里面。
所有改成以下试下:
msgMultipart.addBodyPart(content);
msgMultipart.addBodyPart(attch1);2013年9月10日 13:26
-
http://www.blogjava.net/sunfruit/archive/2008/12/25/77086.html
参考一下2012年3月20日 18:24
相关推荐
使用 JavaMail 库可以轻松地在 Java 应用程序中发送电子邮件。JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件协议,例如 SMTP、POP3 和 ...
3. `javax.mail.Message`:表示一个邮件对象,包含邮件的所有信息,如发件人、收件人、主题、正文等。 4. `javax.mail.internet.MimeMessage`:MIME(Multipurpose Internet Mail Extensions)邮件消息,扩展了标准...
对于JavaMail发送邮件过程中遇到的各种问题,通过细致地检查邮件构建逻辑、确保邮件头部信息正确设置、合理配置邮件内容编码以及完善项目环境配置,可以有效解决大多数问题。同时,利用调试工具深入理解邮件发送的...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一组API,使得开发者能够轻松地处理复杂的邮件操作,比如发送文本、图片、HTML内容以及附件。在本文中,我们将深入探讨如何使用...
这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...
3. **创建邮件消息**:使用`Message`类实例化一个邮件对象,并设置必要的属性,如发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress(...
这个例子展示了如何使用JavaMail发送带附件的邮件。需要注意的是,实际应用中应处理各种异常,确保邮件发送的健壮性。此外,如果你的邮件服务器需要身份验证,还需要提供一个Authenticator来处理登录信息。 总的来...
下面将详细介绍如何利用JavaMail发送文本、HTML和包含附件的邮件,以及在实际应用中需要注意的配置步骤。 1. **JavaMail的基本概念** - JavaMail API提供了一系列接口和类,允许开发者通过SMTP(Simple Mail ...
此外,如果邮件包含敏感信息,务必确保传输过程的安全性,例如启用SSL/TLS加密。 以上就是使用JavaMail发送邮件的详细过程,以及与文本编辑器KindEditor的集成方式。在开发过程中,记得根据具体需求调整和优化代码...
JavaMail 是一个开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一组API,使得开发者可以方便地处理SMTP、POP3、IMAP等邮件协议。在本篇文章中,我们将深入探讨如何使用JavaMail API来实现邮件的发送...
然后,你可以创建一个 `MimeMessage` 对象,用于构建邮件的内容,包括发件人、收件人、主题和正文。`MimeMessage` 提供了设置各种邮件头信息的方法,如 `setFrom()`, `setRecipients()`, `setSubject()` 和 `setText...
总的来说,"Android使用javamail发送邮件"这个主题涵盖了Android平台上利用JavaMail API实现邮件发送的基本流程和注意事项,包括设置SMTP服务器、构建邮件消息、处理附件以及可能的安全性和用户体验优化。...
`Authenticator`类用于提供登录邮箱的凭证,而`MimeMessage`对象则承载了邮件的具体内容,包括发件人、收件人、主题和正文。 请注意,为了安全起见,实际应用中不建议直接在代码中硬编码邮箱账号和密码,而是应该从...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对...
在这个例子中,我们将详细探讨如何使用JavaMail发送邮件,包括SMTP认证、添加附件以及发送HTML内容的邮件。 首先,为了使用JavaMail API,我们需要引入相应的库。在这个例子中,`javamail`和`JAF`(JavaBeans ...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了一组 API,使得开发者可以方便地在 Java 应用程序中集成邮件功能。本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要...
回执邮件是邮件服务中的一项功能,它允许发件人在发送邮件后得知收件人是否已阅读邮件。本资料包主要涵盖了使用 JavaMail 实现回执邮件以及相关邮件操作的知识点。 首先,发送带有回执请求的邮件是通过设置邮件头...
1. `sendEmail(String from, String to, String subject, String body)`: 这个方法用于发送简单的文本邮件,参数分别为发件人、收件人、邮件主题和邮件正文。 2. `sendHtmlEmail(String from, String to, String ...
8. **使用JavaMail发送HTML邮件**:通过设置`MimeMessage`的`setContent()`方法,可以发送包含HTML的邮件。 ```java message.setContent("<h1>HTML邮件标题</h1><p>这是HTML邮件正文。</p>", "text/html;charset=...
它支持多种协议,包括POP3、IMAP和SMTP,这些协议分别用于接收、检索和发送邮件。在使用JavaMail时,了解如何进行加密和非加密通信对于确保数据安全至关重要。 1. **POP3(Post Office Protocol version 3)**: -...