package com.mail.util;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
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 SendMail {
// 邮件发送者地址
private static final String SenderEmailAddr = "send@163.com";
// 邮件发送者邮箱用户
private static final String SMTPUserName = "send@163.com";
// 邮件发送者邮箱密码
private static final String SMTPPassword = "mima";
// 邮件发送者邮箱SMTP服务器 (企业邮箱服务器smtp.qiye.163.com,普通为smtp.163.com)
private static final String SMTPServerName = "smtp.qiye.163.com";
// 传输类型
private static final String TransportType = "smtp";
// 属性
private static Properties props;
public SendMail() {
}
/**
* 静态构造器
*/
static {
SendMail.props = new Properties();
// 存储发送邮件服务器的信息
SendMail.props.put("mail.smtp.host", SendMail.SMTPServerName);
// 同时通过验证
SendMail.props.put("mail.smtp.auth", "true");
SendMail.props.put("mail.smtp.starttls.enable","false");
}
/**
* 发送邮件
* @param emailAddr:收信人邮件地址
* @param mailTitle:邮件标题
* @param mailConcept:邮件内容
*/
public static void sendMail(String emailAddr,String sendName, String mailTitle,
String mailConcept) {
// 根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
Session s = Session.getInstance(SendMail.props, null);
// 设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法
s.setDebug(false);
// 由邮件会话新建一个消息对象
Message message = new MimeMessage(s);
try {
// 设置发件人
Address from = new InternetAddress(SendMail.SenderEmailAddr,sendName);
message.setFrom(from);
// 设置收件人
Address to = new InternetAddress(emailAddr);
message.setRecipient(Message.RecipientType.TO, to);
// 设置主题
message.setSubject(mailTitle);
// 设置信件内容
message.setText(mailConcept);
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
Transport transport = s.getTransport(SendMail.TransportType);
// 要填入你的用户名和密码;
transport.connect(SendMail.SMTPServerName, SendMail.SMTPUserName,
SendMail.SMTPPassword);
// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message, message.getAllRecipients());
transport.close();
//System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle
// + " 内容:" + mailConcept + "成功!");
} catch (Exception e) {
//System.out.println(e.getMessage());
//System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle
// + " 内容:" + mailConcept + "失败! 原因是" + e.getMessage());
}
}
public static void sendMail(String emailAddr,String sendName, String mailTitle,
String mailConcept,boolean ishtml) {
// 根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
Session s = Session.getInstance(SendMail.props, null);
// 设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法
s.setDebug(false);
// 由邮件会话新建一个消息对象
Message message = new MimeMessage(s);
try {
// 设置发件人
Address from = new InternetAddress(SendMail.SenderEmailAddr,sendName);
message.setFrom(from);
// 设置收件人
Address to = new InternetAddress(emailAddr);
message.setRecipient(Message.RecipientType.TO, to);
// 设置主题
message.setSubject(mailTitle);
Multipart mp = new MimeMultipart();
BodyPart html = new MimeBodyPart();
html .setContent(mailConcept, "text/html; charset=utf-8");
mp.addBodyPart(html); // 将含有信件内容的BodyPart加入到MimeMulitipart对象中
// multipart加入到信件
message.setContent(mp);
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
Transport transport = s.getTransport(SendMail.TransportType);
// 要填入你的用户名和密码;
transport.connect(SendMail.SMTPServerName, SendMail.SMTPUserName,
SendMail.SMTPPassword);
// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message, message.getAllRecipients());
transport.close();
//
// System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle
// + " 内容:" + mailConcept + "成功!");
} catch (Exception e) {
System.out.println(e.getMessage());
// System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle
// + " 内容:" + mailConcept + "失败! 原因是" + e.getMessage());
}
}
/**
* 测试邮件发送情况
* @param args
*/
public static void main(String[] args){
SendMail.sendMail("906277880@qq.com","名称", "测试javamail", "哥 你好!",true);
}
public boolean sendMail() {
return false;
}
public static boolean send(String emailAddr,String sendName, String mailTitle,
String mailConcept,boolean ishtml) {
// 根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
Session s = Session.getInstance(SendMail.props, null);
// 设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法
s.setDebug(false);
// 由邮件会话新建一个消息对象
Message message = new MimeMessage(s);
try {
// 设置发件人
Address from = new InternetAddress(SendMail.SenderEmailAddr,sendName);
message.setFrom(from);
// 设置收件人
Address to = new InternetAddress(emailAddr);
message.setRecipient(Message.RecipientType.TO, to);
// 设置主题
message.setSubject(mailTitle);
Multipart mp = new MimeMultipart();
BodyPart html = new MimeBodyPart();
html .setContent(mailConcept, "text/html; charset=utf-8");
mp.addBodyPart(html); // 将含有信件内容的BodyPart加入到MimeMulitipart对象中
// multipart加入到信件
message.setContent(mp);
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
Transport transport = s.getTransport(SendMail.TransportType);
// 要填入你的用户名和密码;
transport.connect(SendMail.SMTPServerName, SendMail.SMTPUserName,
SendMail.SMTPPassword);
// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message, message.getAllRecipients());
transport.close();
//
// System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle
// + " 内容:" + mailConcept + "成功!");
return true;
} catch (Exception e) {
System.out.println(e.getMessage());
// System.out.println("发送邮件,邮件地址:" + emailAddr + " 标题:" + mailTitle
// + " 内容:" + mailConcept + "失败! 原因是" + e.getMessage());
return false;
}
}
}
相关推荐
最后,使用Transport类发送邮件: ```java Transport.send(message); ``` 以上就是一个简单的JavaMail邮件发送实例。在实际开发中,你可能还需要处理异常、设置超时、支持多语言、使用模板等复杂情况。JavaMail ...
这个“完整的javamail发送邮件源码”提供了一种直接可用的解决方案,帮助开发者快速集成邮件发送功能到他们的项目中。以下是对JavaMail核心知识点的详细解析: 1. JavaMail API:JavaMail API 是一组用于处理邮件的...
本篇将深入探讨 JavaMail 的邮件实例,以及如何利用它来创建、发送和接收邮件。 在 JavaMail 中,主要涉及的核心接口和类包括 `Session`、`Message`、`MimeMessage`、`Transport` 和 `Store`。`Session` 是整个邮件...
使用`DEBUG`级别的日志可以帮助跟踪JavaMail发送邮件的详细过程,以便诊断任何可能出现的问题。 以上就是使用JavaMail通过JSPServlet发送验证邮件的基本步骤和注意事项。在实际开发中,可能还需要处理更多细节,如...
3. **发送邮件**:最后,使用`Transport`类的`send`方法发送邮件。 ```java Transport.send(message); ``` 在`RegistMailWeb`项目中,这可能是一个MVC结构的应用,其中控制器处理注册请求,服务层处理邮件发送,而...
### Spring 3.x企业应用开发实战之JavaMail发送邮件知识点详解 #### 一、JavaMail基础知识的快速学习 ##### 1.1 JavaMail概述 JavaMail是Java领域中最为知名的邮件解决方案之一,由Sun Microsystems(现已被...
以上就是使用JavaMail发送和接收邮件的基本流程。在实际应用中,你还可以根据需求实现更复杂的功能,如邮件模板、邮件队列、邮件监控等。在开发过程中,参考JavaMail API文档和官方示例可以帮助理解更多细节和高级...
在 MyEclipse 中,你可以创建一个新的 Java 类,将以上代码片段整合成一个方法,然后在主函数中调用这个方法来发送邮件。记得在实际环境中替换示例中的 SMTP 服务器地址、端口、用户名和密码。 通过这个实例,你...
在这个实例中,我们可能有一个名为`SendMailAction`的类,该类中包含了发送邮件的相关逻辑。Struts2配置文件(`struts.xml`)需要进行相应的配置,以映射HTTP请求到这个Action。 Spring3.0则扮演了服务层的角色,它...
5. **配置及认证**: 在使用JavaMail发送邮件前,需要进行必要的配置,包括设置SMTP服务器地址、端口、认证方式(如PLAIN、LOGIN或 XOAUTH2)。对于需要身份验证的SMTP服务器,通常会使用`Authenticator`类来提供...
以上步骤详细介绍了使用JavaMail发送HTML模板邮件的过程。在实际应用中,你可能还需要考虑错误处理、邮件附件、多语言支持等问题,以及更复杂的模板引擎如FreeMarker或Velocity来动态生成HTML内容。希望这个概述能...
在提供的`cfJavaMail`压缩包文件中,可能包含了一个示例代码或者模板,用于演示如何使用JavaMail API发送邮件。通过学习和理解这些核心概念和代码实现,开发者可以轻松地在自己的项目中集成邮件发送功能。
这个压缩包文件中的"16_sendmail"可能包含了用于演示如何使用JavaMail发送邮件的源代码。 JavaMail的核心组件包括 javax.mail 和 javax.mail.internet 包,这两个包提供了邮件操作所需的所有接口和类。在JavaMail中...
本文将详细探讨如何在Spring环境中,利用JavaMail和Quartz库实现定时发送邮件的功能。 #### JavaMail简介 JavaMail API是一个允许Java应用程序读取和发送邮件的工具包。它提供了与不同邮件协议(如SMTP、POP3和...
在JavaWeb应用中,使用JavaMail发送邮件是常见的功能,特别是在用户注册或验证过程中。JavaMail API 提供了丰富的功能,使得开发者能够便捷地发送文本、HTML甚至附件类型的邮件。以下是一个详细的步骤来实现这个功能...
下面将详细阐述如何在Java中使用SMTP发送邮件。 首先,你需要包含必要的库。JavaMail API是一个广泛使用的库,提供了处理邮件所需的功能。为了使用它,你需要添加以下依赖到你的项目中: ```xml <groupId>...
最后,使用`Transport.send()`方法发送邮件。如果在`Session`中设置了认证信息,此过程会自动处理登录和发送。 在实现过程中,可能需要处理各种异常,如网络问题、认证失败等。同时,确保遵循SMTP(简单邮件传输...
9. **JSP集成**: 在JavaServer Pages(JSP)中使用JavaMail,可以在后台脚本中编写发送邮件的逻辑,然后通过JSP页面上的按钮或表单触发。 10. **异常处理**: 使用JavaMail时,需要注意常见的异常,如`...
2. **SMTP协议**:简单邮件传输协议(SMTP)是JavaMail API用于发送邮件的标准协议。SMTP服务器是接收和转发邮件的服务器,JavaMail API通过SMTP协议与这些服务器通信。 3. **POP3/IMAP协议**:虽然主要讨论的是...
它包括了SMTP(Simple Mail Transfer Protocol)用于发送邮件,IMAP(Internet Message Access Protocol)和POP3(Post Office Protocol version 3)用于接收邮件。通过这个API,开发者可以创建、编辑、发送和接收...