以下是实现了,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("发送完毕");
}
}
分享到:
相关推荐
3. **编写邮件发送代码**:下面是一个简单的示例,展示了如何使用JavaMail发送一封纯文本邮件: ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.example.com"); props.put(...
在JavaMail中,我们不仅可以发送纯文本邮件,还可以发送HTML格式的邮件、带有附件的邮件,甚至可以进行复杂的邮件会话管理和联系人操作。 1. SMTP 协议:SMTP 是互联网上传输电子邮件的标准协议。JavaMail 使用 `...
JavaMail 是一个开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一套API,使得开发者能够方便地处理SMTP、POP3和IMAP等邮件协议。在给定的标题和描述中,我们讨论的是如何使用JavaMail API来接收邮件...
`Message`对象代表一封邮件,通过`MimeMessage`类实例化。设置发件人、收件人、主题和正文。若需发送附件,可使用`MimeBodyPart`和`MimeMultipart`来组合文本和附件。 6. **添加附件** 要发送附件,首先创建一个`...
使用JavaMail API的内容会涵盖实际的代码示例,比如如何创建和发送简单的文本邮件、带有附件的邮件,以及如何接收和读取邮件。这部分还会涉及到认证机制,如如何设置用户名和密码进行SMTP身份验证,以及SSL/TLS安全...
2. **Message对象**:表示一封邮件,可以设置主题、正文、附件、抄送和密送人等。 3. **Transport对象**:负责实际的邮件发送,通过 `Transport.send(Message)` 方法将邮件发送到指定的邮件服务器。 4. **Folder对象...
2. **邮件服务验证**:验证用户输入的邮箱地址是否有效,通过尝试发送一封测试邮件并检查返回的状态。 3. **批量邮件**:批量发送新闻通讯或营销邮件。 4. **邮件备份**:从远程服务器下载邮件到本地存储,以实现...
4. **Message对象**:Message对象代表一封邮件,可以通过`Message.RecipientType`定义收件人类型(如TO、CC、BCC),并使用`Message.setFrom()`, `Message.setRecipients()`, `Message.setText()`等方法填充邮件内容...
通过以上步骤,你可以成功地使用JavaMail API发送一封包含多个附件、HTML内容和嵌入式图片的复杂邮件。在实际应用中,你需要根据实际情况调整邮件的各个部分,例如替换SMTP服务器、邮箱地址、附件路径和HTML内容等。...
总的来说,JavaMail库为Java开发者提供了强大的邮件处理功能,包括发送带附件的邮件、指定多个发送人以及接收和保存邮件附件等。通过学习和理解上述代码,你将能够灵活地实现自己的邮件系统。在实际应用中,还需要...
1. **Message 类**:代表一封邮件,包含了邮件的头信息(如发件人、收件人、主题)和邮件内容。开发者可以使用`Message`类的构造函数创建新邮件,或者从邮件服务器获取已有的邮件。 2. **Session 类**:每个...
- `javax.mail.Message`:代表一封邮件,可以是发送的也可以是接收的。 - `javax.mail.Address`:表示邮件地址,包括发件人、收件人等。 - `javax.mail.Authenticator`:用于认证过程,如用户名和密码验证。 -...
- **Message**:表示一封邮件,包含了邮件的所有内容,如主题、正文、附件等。 - **Transport**:用于发送Message到SMTP服务器。 - **Store** 和 **Folder**:这两个组件用于从POP3或IMAP服务器接收和管理邮件。...
总之,Android平台下处理Gmail邮件发送和接收涉及多个步骤,包括构建邮件、添加附件、获取用户授权、连接SMTP/IMAP服务器以及解析邮件内容。理解这些概念和方法对于开发涉及邮件功能的Android应用至关重要。
- `Message`:表示一封邮件,包含了邮件的各个部分,如主题、正文、附件等。 - `MimeMessage`:MIME(多用途互联网邮件扩展)类型的邮件,支持多种格式的附件和编码。 - `Transport`:负责实际的邮件发送操作。 ...
JavaMail 是一个强大的开源库,用于在 Java 应用...通过以上步骤和代码,你可以构建一个功能完备的 JavaMail 示例,实现文件上传、普通邮件发送和带附件邮件的发送。这将极大地提升你的 Java 应用程序的邮件处理能力。
JavaMail 是一个用于处理电子邮件的开源库,它提供了发送和接收邮件的功能。本文将详细讲解如何使用JavaMail API来实现邮件的收取。 首先,我们需要了解一些基本配置。在示例代码中,创建了一个名为 `Config` 的...
9. **异步邮件处理**:虽然JavaMail 1.3.1可能不包含后来版本引入的异步邮件处理特性,但基本的邮件发送操作可以通过多线程实现异步处理。 10. **国际化和本地化**:JavaMail支持多种语言和字符集,确保邮件内容在...
主要的接口包括 `Session`(配置邮件会话)、`Message`(代表一封邮件)、`Transport`(负责邮件的发送)和`Folder`(用于操作邮箱中的邮件)。 2. **邮件会话**:`Session` 类是邮件操作的基础,它包含了邮件发送...
以上代码演示了如何配置SMTP服务器、创建和发送一封简单的邮件。 9. **测试与调试**: 发送邮件功能在本地开发环境中可能需要特殊的配置,例如开启SMTP服务器的调试模式或使用模拟SMTP服务器进行测试。 通过上述...