以前整理的一个util,发出来和大家共享
package com.dbcapital.util;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.dbcapital.constant.MailConstant;
/**
* . *
*
* @author frady
*/
public class Mail {
String host = "";
String user = "";
String password = "";
public Mail(){
this.host=MailConstant.SMTP_HOST;
this.user=MailConstant.SERVICE_ADDRESS;
this.password=MailConstant.SERVICE_PASSWORD;
}
public Mail(String host,String user,String password){
this.host = host;
this.user = user;
this.password = password;
}
public void send(String to, String subject, String content) {
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
try {
Session mailSession = null;
try{
mailSession=Session.getDefaultInstance(props);
}catch(java.lang.SecurityException e){
mailSession=Session.getInstance(props);
}
Message message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to));
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
message.setSubject("=?GBK?B?"+enc.encode(subject.getBytes())+"?=");
message.setContent(content,"text/html;charset=GBK");
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
System.out.println(e);
}
}
/*
* 由于mail协议的设计问题,可以用以下函数发送匿名信
*/
public void send(String from, String to, String subject, String content) {
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
try {
Session mailSession = null;
try{
mailSession=Session.getDefaultInstance(props);
}catch(java.lang.SecurityException e){
mailSession=Session.getInstance(props);
}
Message message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to));
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
message.setSubject("=?GBK?B?"+enc.encode(subject.getBytes())+"?=");
message.setContent(content,"text/html;charset=GBK");
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
有可能需要附件的lib,实际上肯定是需要的。
分享到:
相关推荐
Java邮件Util是一个用于在Java应用程序中发送电子邮件的实用工具库。它封装了JavaMail API,使得开发者能够方便地实现邮件的发送、接收以及管理。JavaMail API是Java平台上的标准邮件处理接口,提供了多种邮件协议的...
本示例“多线程发邮件”就是利用了这一特性,通过并发执行多个邮件发送任务,来加快邮件的发送速度。下面我们将深入探讨相关知识点。 首先,多线程是指在一个进程中同时执行多个线程,这些线程可以共享同一块内存...
2. 创建`MimeMessage`对象,设置发件人、收件人、主题和邮件内容。 3. 如果需要,可以添加附件。 4. 使用`Transport.send()`方法发送邮件。 然后,你可以用`TimerTask`来包装`EmailSenderTask`,并将其提交给`Timer...
本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...
在定时发送邮件的情况下,你可以结合Java的定时任务框架,如`java.util.Timer`或`java.util.concurrent.ScheduledExecutorService`,来定期执行邮件发送任务。例如,你可以创建一个定时器任务,每隔一段时间检查是否...
接下来,我们需要创建一个`MimeMessage`对象,并设置必要的邮件属性,如发件人、收件人、主题和正文。然后,我们将通过`MimeBodyPart`和`MimeMultipart`类来处理附件。 关键在于如何以流的形式创建Excel附件。我们...
1. **MailSenderInfo类**:这个类封装了发送邮件所需的所有信息,如邮件服务器的主机名(mailServerHost)和端口号(mailServerPort),发件人(fromAddress)、收件人(toAddress)的地址,以及是否需要验证...
Java定时发送邮件是一种常见的自动化任务,常常用于通知、提醒或者定期报告等场景。在这个实例中,我们将探讨如何使用Java编程语言结合电子邮件服务实现一个定时发送邮件的功能。这涉及到的主要知识点包括JavaMail ...
这里需要指定发件人、收件人、主题和邮件内容: ```java String to = "recipient@example.com"; String from = "your-email@example.com"; String subject = "Java发送的测试邮件"; String body = "这是一封由Java...
### Java实现发送邮件知识点详解 #### 一、引言 电子邮件是互联网中最为常见的通信方式之一,被广泛应用于用户激活、密码重置、营销推广等多个场景。为了满足自动化的需求,通常采用程序化的方式进行邮件的发送。...
在Java编程语言中,发送邮件是一项常见的任务,尤其在开发Web应用、自动化通知或系统集成时。本教程将深入讲解如何使用Java实现邮件发送功能,包括所需的库、基本概念以及实际代码示例。 首先,JavaMail API是Java...
在Java编程语言中,发送邮件是一项常见的任务,特别是在开发Web应用或者需要验证用户身份时,如发送验证码。本文将详细讲解如何使用Java实现这个功能,主要基于`javax.mail`库来创建一个简单的邮件发送程序。 首先...
为了实现定时发送邮件,我们可以结合Java的定时器(java.util.Timer)或更高级的调度库如Quartz。 在你的需求中,你需要在特定时间(比如3天后的12:00或每天12:00)发送邮件,并且邮件收件人可能从一个jsp页面动态...
`java.util.Properties`对象用来存储配置信息,包括邮件服务器的属性。例如,我们可以设置`mail.smtp.host`为SMTP服务器地址,`mail.smtp.port`为端口号,以及`mail.smtp.auth`为true,表示需要进行身份验证。 3. ...
接着,我们创建了一个`MimeMessage`对象,设置发件人、收件人、主题和邮件正文。最后,通过`Transport.send()`方法将邮件发送出去。 这个`MailDemo`项目可能包含了一个简单的JSP页面,用于展示如何实现上述代码。在...
这段代码详细展示了发送纯文本邮件的过程,包括创建会话、设置发件人和收件人、设置邮件主题、内容等关键步骤。 ##### 4. 发送HTML格式邮件 ```java public static boolean sendHtmlMail(MailSenderInfo mailInfo)...
3. **构建Message**:创建`Message`对象,设置发件人、收件人、主题和邮件内容。使用`MimeMessage`类创建复杂格式的邮件,包括HTML文本、附件等: ```java MimeMessage message = new MimeMessage(session); ...
如果出现JavaMail 发送邮件报错:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误ava.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 是因为myeclipse中有自带的Javamail...