用JavaMail发送邮件
package com.mailsystem.example;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendAttachment
...{
public static void main(String[] args)
...{
try
...{
// 创建 properties ,里面包含了发送邮件服务器的地址。
Properties mailProps = new Properties();
mailProps.put("mail.smtp.host", "127.0.0.1");
// 创建 session
Session mailSession = Session.getDefaultInstance(mailProps);
// 创建 邮件的message,message对象包含了邮件众多有的部件,都是封装成了set方法去设置的
MimeMessage message = new MimeMessage(mailSession);
//设置发信人
message.setFrom(new InternetAddress(
"fred@testmail.com"));
//收信人
message.setRecipient(Message.RecipientType.TO,
new InternetAddress("tang@testmail.com"));
// 邮件标题
message.setSubject("a poem");
//创建附件
MimeMultipart multi = new MimeMultipart();
// 创建 BodyPart,主要作用是将以后创建的n个内容加入MimeMultipart.也就是可以发n个附件
BodyPart textBodyPart = new MimeBodyPart(); //第一个BodyPart.主要写一些一般的信件内容。
textBodyPart.setText("Do you fear the force of the wind The slash of the rain Go face them and fight them "+
"Be savage again. Go hungry and cold like the wolf, Go wade like the crane: "+
"The palms of your hands will thicken, The skin of your cheek will tan, You'll grow ragged and weary and swarthy, "+
"But you'll walk like a man!");
// 压入第一个BodyPart到MimeMultipart对象中。
multi.addBodyPart(textBodyPart);
// 创建第二个BodyPart,是一个FileDataSource
FileDataSource fds = new FileDataSource("e:\注册码.txt");
BodyPart fileBodyPart = new MimeBodyPart(); //第二个BodyPart
fileBodyPart.setDataHandler(new DataHandler(fds)); //字符流形式装入文件
fileBodyPart.setFileName(fds.getName()); //设置文件名,可以不是原来的文件名。
multi.addBodyPart(fileBodyPart);
// MimeMultPart作为Content加入message
message.setContent(multi);
// 所有以上的工作必须保存。
message.saveChanges();
Transport.send(message);
System.out.println("Mail send succesfully!");
} catch (Exception e) ...{
e.printStackTrace();
}
}
}
用JavaMail接收邮件
package com.mailsystem.example;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.FetchProfile;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.NoSuchProviderException;
import javax.mail.Part;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Provider;
public class MailReciever ...{
public static final String mailServer = "127.0.0.1";
public static final String mailUserName = "tang";
public static final String mailPassword = "tang";
public static final String mailProvider = "imap";
//解析邮件内容
private static void extractPart(final Part part) throws MessagingException, IOException ...{
if(part.getContent() instanceof Multipart) ...{
Multipart mp=(Multipart)part.getContent();
for(int i=0;i<mp.getCount();i++) ...{
extractPart(mp.getBodyPart(i));
}
return;
}
String fileName = part.getFileName();
if(fileName == null) ...{
System.out.println(part.getContent());
} else if(fileName != null && !part.getContentType().startsWith("text/plain")) ...{
//解析附件内容
InputStream in=part.getInputStream();
//保存附件,这里假设了一个文件,实际应该根据保存文件的类型来决定
FileOutputStream out = new FileOutputStream("e:\att.txt");
byte[] buffer=new byte[1024];
int count=0;
while((count=in.read(buffer))>=0)
out.write(buffer,0,count);
in.close();
}
}
public static void main(String []args) ...{
Properties props = new Properties();
props.setProperty("mail.pop3s.rsetbeforequit","true");
props.setProperty("mail.pop3.rsetbeforequit","true");
Session session=Session.getInstance(props,null);
try ...{
System.out.println("Getting store...");
Store store = session.getStore(mailProvider);
store.connect(mailServer, mailUserName, mailPassword);
Folder folder = store.getFolder("inbox");
folder.open(Folder.READ_WRITE);
System.out.println("You have " + folder.getMessageCount() + " messages in inbox");
System.out.println("You hava " + folder.getUnreadMessageCount() + " unread messages in inbox");
Message []msgs = folder.getMessages();
for (int i=0; i < msgs.length; i++) ...{
MailReciever.extractPart(msgs[i]);
}
folder.close(false); //false:不删除标记为DELETED的邮件
store.close();
} catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
分享到:
相关推荐
通过解析给定文件的标题、描述、标签及部分内容,我们可以深入探讨javamail发送与接收邮件的详细教程,以及如何利用JavaMail API实现邮件功能。 ### javamail发送、接收邮件 JavaMail API是由Sun Microsystems开发...
在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将详细探讨这些问题的原因及相应的解决方案。 ##...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中发送和接收电子邮件。它提供了丰富的 API,使得开发者可以方便地与各种邮件服务器进行交互,支持 SMTP、POP3 和 IMAP 协议。本篇文章将深入探讨 JavaMail 的...
以上就是使用JavaMail发送邮件的基本过程。在实际开发中,可能还需要处理更多复杂情况,如SSL/TLS加密、HTML邮件、多部分消息等。JavaMail API提供了丰富的功能来应对这些需求,让开发者能够灵活地构建邮件系统。 ...
下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...
我们可以使用 Transport 对象来发送邮件, Transport 对象是 JavaMail 库中的一个核心对象,用于发送和接收电子邮件。我们可以使用 Transport 对象的 send 方法来发送邮件。 在发送邮件之前,我们需要设置邮件...
JavaMail 是一个开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一套API,使得开发者能够方便地处理SMTP、POP3和IMAP等邮件协议。在给定的标题和描述中,我们讨论的是如何使用JavaMail API来接收邮件...
这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...
JavaMail 是一个开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一组API,使得开发者可以方便地处理SMTP、POP3、IMAP等邮件协议。在本篇文章中,我们将深入探讨如何使用JavaMail API来实现邮件的发送...
接下来,让我们深入探讨如何使用 JavaMail 发送和接收邮件。 1. **发送邮件**: - 配置 JavaMail Session:这通常涉及到设置 SMTP 服务器的属性,如主机名、端口号、用户名和密码。 - 创建 MimeMessage 对象:这...
JavaMail 是一个强大的开源库,用于在Java应用程序中处理电子邮件。它提供了丰富的API,使得开发者可以轻松地实现发送、接收和处理电子邮件...通过深入研究和实践这些示例,你可以熟练掌握使用JavaMail发送邮件的技巧。
JavaMail API 是一个用于发送、接收电子邮件的标准接口集合,它支持多种协议(如 SMTP、IMAP 和 POP3),使得 Java 应用程序能够轻松地发送和接收电子邮件。 #### 二、发送 HTML 格式的邮件 在实际应用中,经常需要...
JavaMail是Java编程语言中用于处理电子邮件的API,它提供了丰富的功能,包括发送、接收邮件以及处理复杂的邮件格式,如文本、图片和附件。在这个小例子中,我们将深入探讨如何利用JavaMail API来实现这些功能。 ...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了一组 API,使得开发者可以方便地在 Java 应用程序中集成邮件功能。本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要...
JavaMail 是一个强大的开源库,用于在 Java 应用程序中发送和接收电子邮件。要实现定时发送邮件,我们可以结合 JavaMail 和 Java 计时器框架(如文中提到的 Java Timer)。以下是一个详细的步骤来实现这个功能: 1....
在这个例子中,我们将详细探讨如何使用JavaMail发送邮件,包括SMTP认证、添加附件以及发送HTML内容的邮件。 首先,为了使用JavaMail API,我们需要引入相应的库。在这个例子中,`javamail`和`JAF`(JavaBeans ...
这个“javamail邮件发送接收测试”是开发者在学习过程中创建的一个测试项目,旨在帮助理解和实践 JavaMail 的核心功能。通过这个项目,我们可以深入理解如何使用 JavaMail API 来实现邮件的发送和接收。 JavaMail ...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送...以上就是使用JavaMail发送邮件的详细过程,以及与文本编辑器KindEditor的集成方式。在开发过程中,记得根据具体需求调整和优化代码,以满足不同的业务场景。
### JavaMail发送与接收详解 #### 一、JavaMail概览与体系结构 JavaMail,作为Sun Microsystems(现Oracle)提出的一系列API集合,专为Java应用开发人员提供了收发电子邮件的功能。值得注意的是,尽管JavaMail是...