Java 发送邮件
EmailInfo.java
import java.io.File;
public class EmailInfo {
private String mailhost;
private String mailport="25";
private String username;
private String password;
private String fromAddress;
private String []toAddress;
private boolean validate =false;
private String subject;
private String content;
private File attFile;
private String attFilePath;
public String getMailhost() {
return mailhost;
}
public void setMailhost(String mailhost) {
this.mailhost = mailhost;
}
public String getMailport() {
return mailport;
}
public void setMailport(String mailport) {
this.mailport = mailport;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFromAddress() {
return fromAddress;
}
public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
}
public String[] getToAddress() {
return toAddress;
}
public void setToAddress(String[] toAddress) {
this.toAddress = toAddress;
}
public boolean isValidate() {
return validate;
}
public void setValidate(boolean validate) {
this.validate = validate;
}
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;
}
public File getAttFile() {
return attFile;
}
public void setAttFile(File attFile) {
this.attFile = attFile;
}
public String getAttFilePath() {
return attFilePath;
}
public void setAttFilePath(String attFilePath) {
this.attFilePath = attFilePath;
}
}
MyAuthenticator.java
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MyAuthenticator extends Authenticator {
private String username=null;
private String password=null;
public MyAuthenticator() {
// TODO Auto-generated constructor stub
}
public MyAuthenticator(String username, String password){
this.username=username;
this.password=password;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// TODO Auto-generated method stub
return new PasswordAuthentication(username, password);
}
}
EmailSender.java
import java.util.Date;
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.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import com.edu.bjfu.it.timesys.config.SystemInfo;
public class EmailSender {
private EmailInfo emailInfo;
private SystemInfo sysinfo;
public EmailSender(){};
public EmailSender(SystemInfo sysinfo, String emailContent) {
this.sysinfo = sysinfo;
emailInfo = new EmailInfo();
String fromEmail = this.sysinfo.getPersonEmail();
if (fromEmail.indexOf("163.com") != -1) {
emailInfo.setMailhost("smtp.163.com");
emailInfo.setMailport("25");
emailInfo.setValidate(true);
} else if (fromEmail.indexOf("qq.com") !=-1) {
emailInfo.setMailhost("smtp.qq.com");
emailInfo.setMailport("25");
emailInfo.setValidate(true);
}
emailInfo.setUsername(fromEmail);
emailInfo.setPassword(this.sysinfo.getPersonPwd());
//File attFile=new File("D:\\mail.jar");
//emailInfo.setAttFile(attFile);
emailInfo.setFromAddress(fromEmail);
emailInfo.setToAddress(this.sysinfo.getSupervisionEmail().split(","));
emailInfo.setSubject("TimerSystem ");
emailInfo.setContent(emailContent);
}
/**
*
* @param emailInfo
* @return
*/
public boolean sendHtmlEmail(){
MyAuthenticator authenticator=null;
Properties prop=getProperties(this.emailInfo);
if(this.emailInfo.isValidate()){
authenticator = new MyAuthenticator(this.emailInfo.getUsername(), this.emailInfo.getPassword());
}
Session session = Session.getDefaultInstance(prop, authenticator);
try {
Message message = new MimeMessage(session);
Address fromAddress = new InternetAddress(this.emailInfo.getFromAddress());
String []toAddre=this.emailInfo.getToAddress();
//emailInfo.getToAddress();
Address []toAddress = new InternetAddress[toAddre.length];
for(int i=0;i<toAddre.length;i++){
// System.out.println("run here");
// System.out.println(toAddre[i]);
toAddress[i]=new InternetAddress(toAddre[i]);
System.out.println(toAddress[i].toString());
}
message.setFrom(fromAddress);
message.setRecipients(Message.RecipientType.TO,toAddress);
message.setSubject(this.emailInfo.getSubject());
message.setSentDate(new Date());
Transport transport;
transport=session.getTransport("smtp");
transport.connect(this.emailInfo.getMailhost(), this.emailInfo.getUsername(), this.emailInfo.getPassword());
BodyPart mbp=new MimeBodyPart();
Multipart multipart=new MimeMultipart();
mbp.setContent(this.emailInfo.getContent(), "text/html;charset=UTF-8");
multipart.addBodyPart(mbp);
if(this.emailInfo.getAttFile() !=null){
mbp=new MimeBodyPart();
DataSource source =new FileDataSource(this.emailInfo.getAttFile());
mbp.setDataHandler(new DataHandler(source));
mbp.setFileName(this.emailInfo.getAttFile().getName());
multipart.addBodyPart(mbp);
}
message.setContent(multipart);
transport.sendMessage(message, toAddress);
transport.close();
return true ;
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return false;
}
public Properties getProperties(EmailInfo emailInfo){
Properties prop=new Properties();
prop.put("mail.smtp.host",emailInfo.getMailhost());
prop.put("mail.smtp.port", emailInfo.getMailport());
prop.put("mail.smtp.auth", emailInfo.isValidate()?"true":"fasle");
return prop;
}
}
相关推荐
Java Mail邮件发送是一个在Java应用程序中发送电子邮件的关键技术。它基于JavaMail API,这是一个开源库,提供了丰富的功能来处理SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件...
Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...
描述中提到的“JAVA MAIL邮件发送系统”是指使用JavaMail API来发送电子邮件。JavaMail是Java平台上的开源库,它提供了一组接口和类,可以与各种邮件服务器通信,包括SMTP服务器(用于发送邮件)、POP3或IMAP服务器...
它可能包含的方法有`sendEmail(String to, String subject, String body, Properties config)`,其中`to`是收件人地址,`subject`是邮件主题,`body`是邮件正文,`config`则是邮件发送的配置信息。 4. **配置参数**...
代码不是独家所有,简单的一个例子,共享给大家使用,拿到代码后,自己改改包名和添加相对应的jar包。我只是在工程里面直接打了个zip压缩,所以jar包可能没有!主要使用了mail.jar(javax.mail)
在Java Mail中,你可以使用SMTP(简单邮件传输协议)或其他邮件传输协议来发送邮件。提供的jar包通常包括了 javax.mail 和 javax.mail.internet 等核心库,这些库包含了处理邮件所需的全部API。 在给定的压缩包中,...
Java发送电子邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释如何使用Java来发送邮件,并提供相关的知识点。 首先,Java通过JavaMail API提供了发送邮件的功能。JavaMail ...
邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)两种协议。SMTP用于将邮件发送到邮件服务器,而POP3则用于从邮件服务器接收邮件。此外,还有IMAP(Internet ...
下面将详细介绍如何使用Java Mail进行邮件发送,并结合提供的文件名称,提供相关的代码实例。 首先,要使用Java Mail API,我们需要引入相关的依赖库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml ...
在实际开发中,还可以使用第三方库如Apache Commons Email或JavaMailSender Interface(Spring框架的一部分)来简化邮件发送的过程,它们提供了更友好的API来处理邮件。 总结一下,Java发送带有附件的邮件涉及到...
Java Mail 提供了一个调试开关,允许开发者输出邮件发送过程的调试信息。下面是一个简单的示例代码: ```java public class Mail { public static void main(String[] args) { Mail mail = new Mail(); mail....
在`Mail_class.java`文件中,我们将实现以下四种类型的邮件发送: 1. **发送纯文本邮件**: 要发送纯文本邮件,你需要创建一个`Properties`对象来设置SMTP服务器的相关属性,然后通过`Session`对象初始化邮件会话...
通过运行这个程序,你可以实际测试邮件发送功能是否正常工作。 总的来说,Java Mail API 提供了一套强大的工具,使得在Java应用程序中集成邮件功能变得简单。通过结合Apache Commons Email库,我们可以轻松地创建...
接着,我们创建一个`MimeMessage`实例,设置发件人、收件人、主题和正文,最后通过`Transport.send()`方法发送邮件。 Java Mail API还支持更复杂的功能,如添加附件、设置HTML格式的正文、使用多部分消息(MIME类型...
本篇文章将详细讲解如何利用Java实现邮件发送,并结合Apache的相关库来创建邮件发送模板,以提升效率和用户体验。 首先,JavaMail API是Java中用于处理电子邮件的主要库。它提供了丰富的API,可以用来创建、发送和...
Java邮件发送是一个常见的任务,尤其在自动化通知、订阅服务或者数据报告等场景中。本教程将详细介绍如何使用Java实现邮件发送功能,同时提供了一个Jar包和demo源码供参考。 首先,我们需要理解JavaMail API,这是...