以下是是发送邮件的JavaMail 实现,加入工程即可用,不过邮箱信息需要更换。。。
package com.mail;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class TestSendMail {
public static void main(String[] arg) throws Exception {
sendMailWithAttachement();
}
/**
* 不需要验证的邮件发送
*
* @throws Exception
*/
public static void setMessage() throws Exception {
Properties props = System.getProperties();
props.put("mail.smtp.host", "mail.infoservice.com.cn"); // 设置smtp的服务器地址:该邮件服务器不需要身份验证
props.put("mail.smtp.auth", "false"); // 设置smtp服务器要身份验证:缺省设置为false
Address from = new InternetAddress("chencheng@infoservice.com.cn");
Address to = new InternetAddress("11@qq.com");
Session session = Session.getDefaultInstance(props, null);
Message message = new MimeMessage(session);
message.setFrom(from);
message.addRecipient(Message.RecipientType.TO, to);
message.setText("I love U!!!");
message.setSubject("Test");
Transport.send(message);
System.out.println("邮件发送完毕!");
}
/**
* 带授权的发送邮件
*
* @throws Exception
*/
public static void setMessageWithAuthentica() throws Exception {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.126.com"); // 设置smtp的服务器地址是smtp.126.com
props.put("mail.smtp.auth", "true"); // 设置smtp服务器要身份验证。
PopupAuthenticator auth = new PopupAuthenticator();
// Session 类定义了一个基本的邮件会话。通过该会话可让别的工作顺利执行。
// 在大多数情况下,使用共享会话就足够了,即使为多个用户邮箱处理邮件会话 也是如此。
// 您可以在通信过程的后面一步添加上用户名和密码的组合,并保持所有 的一切是独立的。
Session session = Session.getDefaultInstance(props, auth);
// 发送人地址
Address addressFrom = new InternetAddress(PopupAuthenticator.username,
PopupAuthenticator.username);
// 收件人地址
Address addressTo = new InternetAddress("111@qq.com");
// 抄送地址
// Address addressCopy = new InternetAddress("haocongping@gmail.com",
// "George Bush");
// 可以通过将Session对象传递给MimeMessage构造 器的方法来创建消息
// 一个MimeMessage是一种理解MIME类型和报头(在不同的RFC文档中 均有定义)的消息。
// 消息的报头被严格限制成只能使用US-ASCII字符,尽管非 ASCII字符可以被编码到某些报头字段中。
Message message = new MimeMessage(session);
message.setContent("This is mail content!", "text/plain");// 或者使用message.setText("Hello");更详细的信息请参看后续文章.
message.setSubject("测试邮件标题");
message.setFrom(addressFrom);
message.addRecipient(Message.RecipientType.TO, addressTo);
// message.addRecipient(Message.RecipientType.CC,addressCopy);
message.saveChanges();
// session.setDebug(true);
Transport transport = session.getTransport("smtp"); // 创建连接
transport.connect("smtp.126.com", PopupAuthenticator.username,
PopupAuthenticator.pwd);// 连接服务器
transport.sendMessage(message, message.getAllRecipients()); // 发送信息
transport.close(); // 关闭连接
System.out.println("邮件发送完毕!");
}
/**
* 带附件的邮件发送
*
* @throws Exception
*/
public static void sendMailWithAttachement() throws Exception {
Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp.126.com"); // 设置smtp的服务器地址是smtp.126.com
props.put("mail.smtp.auth", "true"); // 设置smtp服务器要身份验证。
PopupAuthenticator auth = new PopupAuthenticator();
Session session = Session.getInstance(props, auth);
File filename = new File("D:\\testMail.txt");
// 发送人地址
Address from = new InternetAddress(PopupAuthenticator.username,
PopupAuthenticator.pwd);
Address to = new InternetAddress("地址@qq.com");
// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(from);
message.addRecipient(Message.RecipientType.TO, to);
//message.addRecipient(Message.RecipientType.TO, new InternetAddress("第二个地址@qq.com"));
message.setSubject("Hello 同学","utf-8");
// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
// Fill the message
//messageBodyPart.setContent("我勒个去啊","text/html;charSet=utf-8");
messageBodyPart.setText("看到这封信,请不要惊讶!这是系统自动发送的邮件,请善误操作!");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("download.txt");
multipart.addBodyPart(messageBodyPart);
// Put parts in message
message.setContent(multipart);
// Send the message
Transport.send(message);
System.out.println("成功!");
}
public static void recpMail() throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
/*
* Properties props = new Properties();
* props.put("mail.smtp.host","smtp.sina.com");
* props.put("mail.smtp.auth","true"); //
* props.put("mail.pop3.socketFactory.fallback", "false"); Session
* session = Session.getInstance(props, new PopupAuthenticator());
*
* Store store = session.getStore("pop3"); store.connect(); Folder
* folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); //
* Message[] messages = folder.getMessages();
* System.out.println(folder.getMessageCount()); // for (int i=0;i<messages.length;i++)
* folder.close(true); store.close();
*/
Properties props = new Properties();
props.put("mail.smtp.host", "mail.infoservice.com.cn");
props.put("mail.smtp.auth", "false");
Session session = Session.getInstance(props, new PopupAuthenticator());
Store store = session.getStore("pop3");
store.connect("mail.infoservice.com.cn", "zouqingbing", "你的密码");
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
System.out.println(folder.getPermanentFlags().getSystemFlags().length);
Message[] messages = folder.getMessages();
for (int i = 0; i < messages.length; i++) {
if (i == 19)
messages[i].reply(true);
System.out.println(i + ": 发件人=[" + messages[i].getFrom()[0]
+ "],标题=[" + messages[i].getSubject() + "]");
// System.out.println("需要查看邮件内容吗?[Y]---查看;[N]---暂时不看。");
// String line = reader.readLine();
// if ("Y".equals(line))
// System.out.println(messages[i].getContent().toString().getBytes("GB2312"));
}
folder.close(true);
store.close();
}
}
下面是你要哪个邮箱发送的验证信息类
package com.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class PopupAuthenticator extends Authenticator {
public static String username = "ss@126.com"; // 邮箱登录帐号
public static String pwd = "11"; // 登录密码
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, pwd);
}
}
最下面 是上面两个类的源码
分享到:
相关推荐
1. **Java Mail 1.4.5**:这是 Java Mail 的一个稳定版本,发布于2010年。它包含了一系列用于处理邮件的类和接口,例如 `javax.mail.Session` 代表与邮件服务器的会话,`javax.mail.Store` 用于连接邮件存储,`javax...
Java Mail 是一个开源的 Java API,它为开发者提供了在 Java 应用程序中发送和接收电子邮件的功能。Java Mail 1.4 源码的分析和理解有助于我们深入探究其内部工作原理,优化邮件处理效率,并能根据需求进行定制化...
Java Mail是一种在Java环境中发送和接收电子邮件的标准API,它提供了丰富的功能,包括创建、解析、发送和接收邮件。本教程将深入探讨如何使用Java Mail进行邮件群发,并讲解如何构建一个简单的EDM(Electronic ...
2012-2-1 00:14| 发布者: mark| 查看: 236| 评论: 0|原作者: mark|来自: ajava.org 摘要: 下面例子演示怎样用javamail来发送邮件,在测试之前,我们要下载javamail的类包,并添加入你的工程中,如果你的IDE自带...
2. **邮件发送过程**:发送邮件时,需先定义`mail from<>`和`rcpt to<>`,这是与服务器交互的关键。邮件包含两个部分:邮件头和邮件内容。邮件头包含from、to、subject、date等信息,邮件内容以"data"开始,以"....
在描述中提到的"打包发布"可能是指包含了Java Mail项目的源码、库文件或者示例代码,这可以帮助开发者更方便地理解和使用Java Mail。通常,这样的压缩包可能包含以下内容: 1. `README`或文档:解释如何使用Java ...
这个版本的JAR包是在2010年发布的,虽然相对较老,但对于基础的SMTP邮件发送仍然足够使用。 2. **spring-context-support-5.0.1.RELEASE.jar**:这个JAR包是Spring框架的一部分,提供了对邮件服务的支持。Spring...
描述中的链接指向了一个名为“thousandzhang”的作者在iteye博客上发布的文章,虽然具体内容未提供,但我们可以推测这篇文章可能提供了详细的步骤、代码示例和配置信息,指导读者如何使用Java实现邮件功能。...
Java邮件发送技术主要涉及到SMTP(Simple Mail Transfer Protocol)协议,这是一种用于在互联网上传输电子邮件的标准。JDAVMail是一个开源的Java库,它允许开发者通过Java程序发送、接收和处理邮件,包括支持像...
Java Mail 是一个开源的Java库,它为Java应用程序提供了邮件收发功能。Mail-1.4.3 版本是这个库的一个经典且稳定的发行版,适用于开发人员在构建需要邮件处理功能的应用程序时使用。这个版本在发布时经过了广泛的...
**JavaMail** 是由 Sun 公司发布的 API,它提供了一种简便的方式来处理电子邮件的发送与接收功能。尽管 JavaMail 并未集成到标准的 Java 开发工具集中,但用户可以在需要时单独下载并使用它。JavaMail 的运行依赖于 ...
辅助办公系统,具有发布公告、站内邮箱、日程安排、日志查看等功能,可以作为毕业设计项目
据统计,上网用户中有87.6%使用了电子邮件服务,而据 2000 年10月份发布的一份调查报告,国内有24.03%的企业已拥有了自己的电子邮件系统,以Email进行工作交流和与业务伙伴的信息交换。 三、毕业设计...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
Apache James邮件服务器是一款开源的、基于Java的全功能邮件服务器,它支持SMTP、POP3和IMAP协议,为企业和个人提供了一种可靠且可扩展的邮件处理解决方案。在本项目中,我们将探讨如何利用Apache James来实现邮件的...
- 相关协议:如SMTP(Simple Mail Transfer Protocol)用于发送邮件,POP3(Post Office Protocol v3)和IMAP(Internet Message Access Protocol)用于接收邮件。 - 功能实现:包括邮件发送、接收、删除、标志、...
在探索这个程序时,开发者或用户需要具备一定的编程知识,特别是对用于邮件处理的库和API的理解,例如Python的`imaplib`或`poplib`模块,或者是Java的`javax.mail`包。此外,理解SMTP(简单邮件传输协议)也可能有助...
首先,我们需要了解JavaMail API,这是一个用于处理电子邮件的开源库,它允许我们在Java程序中创建、发送和接收邮件。要实现邮箱发送,你需要引入JavaMail API的相关依赖,通常包括`javax.mail`和`javax.mail-api`这...
在Android平台上,开发人员可以利用内置的SMTP(Simple Mail Transfer Protocol)支持来实现邮件发送功能。这个过程涉及到多个步骤和关键知识点,包括设置权限、构建邮件消息对象、选择邮件服务提供商以及处理网络...