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!");
}
}
}
分享到:
相关推荐
基于javamail1.4实现邮件发送,支持多收件人、抄送人、多附件等
包括邮件的发送、阅读、和删除功能。当然还可以添加联系人,联系人是采用xml文档保存的。本邮件系统当有新邮件到达时可以提示,并且系统托盘中的邮件图标会闪动。本邮件系统是本人为了熟悉java而开发的,肯定有很多...
JavaMail实现邮件发送功能,可发送、抄送、密送多人,支持多附件的发送。配置相关参数后可直接调用发送邮件
javamail实现的邮件发送功能,内含完整代码和jar包,邮件服务协议smtp,pop3,如使用imap等其他协议也可参考此代码调整或询问我
springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981
javamail实现的邮件发送功能,内含完整代码和jar包,邮件服务协议smtp,pop3,用javamail发送邮件,支持QQ,163邮件发送。相同邮件(QQ邮箱给QQ邮箱)和不同邮件(QQ邮箱给163邮箱)是不一样的。
使用Java完成的简单邮箱系统,界面由Java Swing实现,具有以下功能: 1、邮件收发等邮箱基本功能 2、可设置黑名单、白名单,并过滤邮件 3、使用朴素贝叶斯算法检测评估邮件是否为垃圾邮件
它能实现邮件的接收与发送,并能完成附件的传输,具有较好的人机交互性,易于使用。 开发环境:JDK1.6 + Windows平台 开发技术:Javamail 开发工具:Eclipse3.4 运行环境:PC上需安装JDK1.6,且正确配置环境变量。 ...
利用JavaMail API来发送Email的工具类 支持单发,群发及无限制数量的附件功能,并同时支持简单邮件和HTML两种格式的邮件内容 支持抄送,密送功能 具体使用参见其mail方法的使用示例
本文描述如何使用James搭建具备一定邮件过滤、邮件操作功能的邮件服务器,以及使用Javamail实现对James服务器邮件的收发功能。
java web通过javamail实现邮件的发送接收功能。实现了邮件的发送并带有附件的功能。
javamail所需要的两个jar包。mail.jar,activation.jar 博文链接:https://javeye.iteye.com/blog/153827
新邮件功能没实现新邮件功能没实现新邮件功能没实现新邮件功能没实现
NULL 博文链接:https://lihongtai.iteye.com/blog/2178787
基于JavaMail的邮件收发系统是一种用于发送和接收电子邮件的应用程序,它基于JavaMail API来实现与邮件服务器的通信,并提供用户界面来进行邮件的管理和操作。以下是对该系统实现的描述: 用户界面: 系统提供了...
NULL 博文链接:https://zgphacker2010.iteye.com/blog/1099993
使用javamail实现发送邮件功能,为每个发送邮件任务开启单独线程,注意替换掉javaee的自带mail包。
用JavaMail实现回复邮件功能以及如何利用James.Jar实现个人邮件服务器,邮件账户管理相关学习源码