Mailbox.java: 表示邮箱的一些信息
package common;
public class Mailbox {
private String host;
private String name;
private String password;
private String from;
private String to;
private String subject;
private String content;
/**
*
* @param host
* @param name
* @param password
* @param mailInfo
*/
public Mailbox(String host, String name, String password,MailInfo mailInfo) {
// TODO Auto-generated constructor stub
this.host = host;
this.name = name;
this.password = password;
this.from = mailInfo.getFrom();
this.to = mailInfo.getTo();
this.subject = mailInfo.getSubject();
this.content = mailInfo.getContent();
}
/**
*
* @return
*/
public boolean sendTextMail(){
TextMail textMail = new TextMail(host,name,password);
textMail.setFrom(from);
textMail.setText(content);
textMail.setTo(to);
textMail.setSubject(subject);
return textMail.send();
}
}
MailInfo.java: 邮件的一些信息:from,to,suject,content
package common;
public class MailInfo {
private String from;
private String to;
private String subject;
private String content;
/**
*
* @param from
* @param to
* @param subject
* @param content
*/
public MailInfo(String from, String to, String subject, String content){
this.from = from;
this.to = to;
this.subject = subject;
this.content = content;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
TextMail.java:对要发送的邮件进行初始化
package common;
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* function: Send a mail to the specific address
* @author JAY
*
*/
public class TextMail {
private MimeMessage message;
private Properties props;
private Session session;
private String name = "";
private String password = "";
/**
* complete the initialization
* @param host
* @param name
* @param password
*/
public TextMail(String host, String name, String password){
this.name = name;
this.password = password;
props = System.getProperties();
//set the SMTP host
props.put("mail.smtp.host", host);
//set SMTP authorization
props.put("mail.smtp.auth", "true");
//get the mail session
MyAuthenticator auth = new MyAuthenticator(name,password);
session = Session.getDefaultInstance(props,auth);
//create MIME mail object
message = new MimeMessage(session);
}
/**
* set mail sender
* @param from
*/
public void setFrom(String from){
try {
message.setFrom(new InternetAddress(from));
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* set mail recipient
* @param to
*/
public void setTo(String to){
try {
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* set mail subject
* @param subject
*/
public void setSubject(String subject){
try {
message.setSubject(subject);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* set mail text
* @param text
*/
public void setText(String text){
try {
message.setText(text);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* send mail
* @return
*/
public boolean send(){
try{
//create SMTP sender object
Transport transport = session.getTransport("smtp");
//get the connection with server
transport.connect((String) props.get("mail.smtp.host"),name,password);
//send the mail via server
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();
return true;
}catch(NoSuchProviderException e){
e.printStackTrace();
return false;
}catch (MessagingException e){
e.printStackTrace();
return false;
}
}
}
MyAuthenticator.java
package common;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MyAuthenticator extends Authenticator{
String name;
String password;
/**
*
* @param name
* @param password
*/
public MyAuthenticator(String name, String password){
this.name = name;
this.password = password;
getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(name,password);
}
}
Main.java:测试代码
package common;
import java.util.*;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String from = "test@sina.com";
String to = "test@163.com";
String subject = "test";
String content = "hello,world!";
String host = "smtp.sina.com";
String name = "test";
String password = "pass";
/* Scanner scan = new Scanner(System.in);
System.out.println("Please select your emailbox:");
System.out.println("mailbox host:");
host = scan.next();
System.out.println("mailbox name:");
name = scan.next();
System.out.println("mailbox password:");
password = scan.next();
System.out.println("send from:");
from = scan.next();
System.out.println("send to:");
to = scan.next();
System.out.println("subject:");
subject = scan.next();
System.out.println("text:");
text = scan.next();*/
MailInfo mailInfo = new MailInfo(from,to,subject,content);
Mailbox mailBox = new Mailbox(host,name,password,mailInfo);
if(mailBox.sendTextMail()){
System.out.println("Mail send successfully!");
}
else{
System.out.println("Mail send failed!");
}
}
}
分享到:
相关推荐
在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...
本教程将详细讲解如何使用 JavaMail 实现邮件发送功能,包括支持多个接收人、抄送人以及添加多个附件。 首先,确保你已经添加了 JavaMail 的依赖库到你的项目中。如果是 Maven 项目,可以在 pom.xml 文件中添加以下...
springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981
“javamail”是JavaMail的核心库,包含了实现邮件功能所需的类和接口;“Maillist”可能表示邮件列表,用于存储用户的联系人或订阅列表。 总的来说,这个JavaMail邮箱系统是一个集成了邮件处理、用户设置和智能过滤...
它提供了与各种邮件服务器(如 SMTP、POP3 和 IMAP)交互的接口,使得开发者能够在 Java 应用程序中实现邮件功能。在本项目中,我们将重点讨论如何使用 JavaMail 实现邮件的发送功能,以及涉及到的关键知识点。 ...
包括邮件的发送、阅读、和删除功能。当然还可以添加联系人,联系人是采用xml文档保存的。本邮件系统当有新邮件到达时可以提示,并且系统托盘中的邮件图标会闪动。本邮件系统是本人为了熟悉java而开发的,肯定有很多...
它提供了一组 API,使得开发者可以方便地在 Java 应用程序中集成邮件功能。本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要导入 JavaMail 相关的库。在 Maven 项目中,可以在 `pom.xml` 文件中...
本篇将详细介绍如何利用 JavaMail 实现邮件发送,包括发送、抄送、密送多人以及添加多附件。 首先,你需要在项目中引入 JavaMail 的依赖。如果是 Maven 项目,可以在 `pom.xml` 文件中添加如下依赖: ```xml ...
本篇将深入探讨如何使用JavaMail实现发送邮件,以及相关的源码分析。 首先,我们需要了解JavaMail的基本组件。`javax.mail`库主要包含以下关键接口和类: 1. `Session`:这是JavaMail的核心,代表与邮件服务器的...
标签“java发送邮件”意味着此示例主要关注Java语言中发送邮件的功能,而“javamail邮箱发送”则表明我们利用JavaMail库来实现这一功能。这个过程涉及到Java网络编程和邮件协议的理解,如SMTP(简单邮件传输协议)和...
它提供了与标准电子邮件协议(如 SMTP、POP3 和 IMAP)交互的接口,使得开发者能够在 Java 应用程序中轻松地实现邮件功能。在本文中,我们将深入探讨如何使用 JavaMail 实现发送邮件的功能。 首先,你需要在项目中...
JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中添加电子邮件功能,包括发送、接收邮件以及管理邮箱。在这个主题中,我们将深入探讨如何使用 JavaMail 实现邮件的加密和解密,以及如何进行邮件的...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。...在这个过程中,理解MimeMessage、Multipart和BodyPart的概念,以及如何配置SMTP服务器参数,是成功实现邮件发送的关键。
其中,Spring的JavaMail支持使得开发者能够轻松地实现邮件发送功能。在本篇文章中,我们将深入探讨如何利用Spring来实现JavaMail邮件发送,以及在实际应用中需要注意的关键点。 首先,我们需要理解JavaMail API的...
总的来说,JavaMail与Struts2结合可以方便地在Web应用中实现邮件功能,提供给用户便捷的邮件服务。理解JavaMail API的使用方法和在Struts2中的集成策略,有助于你构建更高效、更灵活的应用系统。
- JavaMail集成:利用JavaMail API实现邮件的收发功能。 - 数据持久化:使用数据库存储用户信息、邮件数据等。 - 安全性考虑:加密传输、用户认证机制等。 #### 五、系统架构与关键技术 1. **MVC模式**:Model-...
在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...
在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件、设置HTML内容、发送带有图片的邮件等。 在JavaMail中发送邮件主要涉及以下组件: 1. **Properties对象**:这个对象用来存储邮件服务器的相关配置信息...
JavaMail通过`mail.smtp.socketFactory.class`和`mail.smtp.socketFactory.port`属性实现此功能。 6. **证书与信任管理**: - 当使用加密连接时,需要处理服务器证书验证。JavaMail默认会检查服务器的证书是否由受...