【黑马程序员】使用javamail通过QQ邮箱发送邮件
黑马程序员济南中心 编著 【黑马程序员】使用javamail通过QQ邮箱发送邮件
在项目中,常常使用某一个邮箱地址作为项目对外的公共发送邮件的地址,QQ邮箱被使用的概率不大,但是QQ邮箱的配置使用却别其他邮箱较为复杂,下面做一个简单的demo来演示如何配置并使用QQ邮箱发送邮件
1.为QQ邮箱开通POP3/SMTP服务
2.开启的时候需要使用你注册的手机号向腾讯发送一个短信(按照上面提示发送),发送成功之后点击“我已发送”
3.验证成功之后,QQ会返回一个授权码 黑马程序员济南中心 编著
4.在项目中引入javamail相关jar包
demo中使用的是javax.mail-1.5.1.jar版本
5.java代码如下:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22 public class MailUtils2 {
private static String smtp_host =""; // QQ SMTP服务
private static String username = "使用发件人邮箱地址"; // 邮箱账户
private static String password = "iiotqaasiaiabfgc"; // 邮箱授权码-该授权码就是在开启QQPOP3/SMTP服务时返回的那串激活码
private static String from = "使用发件人邮箱地址"; // 邮箱账户
public static void sendMail(String subject, String content, String to) {
//设置发送邮件的properties
Properties props = new Properties();
props.setProperty("mail.smtp.host", smtp_host);
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
// QQ 邮箱需要 SSL 加密
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.socketFactory.class",
".ssl.SSLSocketFactory");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
//准备连接对象 黑马程序员济南中心 编著 23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Session session = Session.getInstance(props);
//创建邮件信息
Message message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(from));//设置发件人
message.setRecipient(RecipientType.TO, new
InternetAddress(to));//设置收件人以及收件人地址
message.setSubject(subject);//邮件主题
message.setContent(content, "text/html;charset=utf-8");//支持富文本内容
Transport transport = session.getTransport();
transport.connect(smtp_host, username, password);
transport.sendMessage(message, message.getAllRecipients());//发送邮件
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("邮件发送失败...");
}
}
public static void main(String[] args) {
//测试
sendMail("测试邮件", "你好a", "收件人邮箱地址");
}
}
5.邮箱可以正常收到
javamail发送文本邮件、HTML邮件及带附件邮件
javamail发送文本邮件、HTML邮件及带附件邮件
MailInfo.java
[java] view plain copy
1. import java.util.Properties;
2.
3. public class MailInfo {
4. private String mailServerHost;// 服务器ip
5. private String mailServerPort;// 端口
6. private String fromAddress;// 发送者的邮件地址
7. private String toAddress;// 邮件接收者地址
8. private String username;// 登录邮件发送服务器的用户名
9. private String password;// 登录邮件发送服务器的密码
10. private boolean validate = false;// 是否需要身份验证
11. private String subject;// 邮件主题
12. private String content;// 邮件内容
13. private String[] attachFileNames;// 附件名称
14.
15. public Properties getProperties() {
16. Properties p = new Properties();
17. p.put("mail.smtp.host", this.mailServerHost);
18. p.put("mail.smtp.port", this.mailServerPort);
19. p.put("mail.smtp.auth", validate ? "true" : "false");
JavaMail快速入门——使用JavaMail APls发送和接收Email
JavaMail快速入门——使用JavaMail APls发送和接收Email
TonyLoton; 郑涛
【期刊名称】《《程序员:CSDN开发高手》》
【年(卷),期】2004(000)002
【摘 要】本文中Tony Loton将带你走上开发基于Java的。Email应用的第一步,如果你喜欢创建自己的Email客户端程序而不是用Microsoft Outlook,或者喜欢建一个基于Web的Email系统而不用诸如Hotmail之类的东西,那么本文正是你所需要的。为了从一个不同寻常的角度来审视JavaMail潜在的能力。
【总页数】7页(P78-84)
【作 者】TonyLoton; 郑涛
【作者单位】
【正文语种】中 文
【中图分类】TP393.098
【相关文献】
1.例题53 基于JavaMail API的邮件接收 [J], 左瑞欣
2.基于JavaMail API的邮件认证与接收 [J], 钟忺;刘春燕
3.使用JavaMail/JAF开发中文邮件系统的关键技术研究 [J], 袁梅冷;聂哲
4.一种使用JavaMail的邮件直接发送方法及其实现 [J], 沈洪良;朱国进
5.应用JavaMail接收和发送E-mail [J], 魏钢 因版权原因,仅展示原文概要,查看原文内容请购买
Java发送邮件——SpringBoot集成JavaMail
Java发送邮件——SpringBoot集成JavaMail
⽤途:此⽂仅供,⾃⼰今后的⼩程序通过邮件,批量通知⽤户。
简单记录了⼀些发送基本邮件的操作。
项⽬(SpringBoot版本为2.1.2.RELEASE):
核⼼依赖(其他相关依赖,在其使⽤的地⽅具体说明):
org.springframework.boot
spring-boot-starter-mail
application.yml——邮件发送相关配置:
spring:
mail:
host:
username: ***@
password: *** #qq邮箱开启POP3/SMTP服务后,⽣成的授权码
receiver: ***@
protocol: smtp
default-encoding: utf-8
邮件实体类(使⽤Lombok的注解简化实体构造):
import lombok.Data;
import org.springframework.core.io.FileSystemResource;
@Data
public class MailBean {
private String subject;
private String text;
private FileSystemResource file;
private String attachmentFilename;
private String contentId;
}
简单封装邮件发送的⼯具类:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
使用java发送短信和邮件
使⽤java发送短信和邮件
(1)发送短信
1.1在中国⽹建SMS上注册⼀个⽤户名,并获取短信密钥(⾮登录密码)
1.2代码
import java.io.IOException;
import mons.httpclient.Header;
import mons.httpclient.HttpClient;
import mons.httpclient.HttpException;
import ValuePair;
import mons.httpclient.methods.PostMethod;
public class SendMessage {
/**
* @param args
* @throws IOException
* @throws HttpException
*/
public static void main(String[] args) throws HttpException, IOException {
HttpClient client=new HttpClient();
PostMethod post=new PostMethod("");
//在头⽂件中设置转码
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");
NameValuePair[] data={
new NameValuePair("Uid","⽹建注册⽤户名"),
new NameValuePair("Key","短信密钥"),
new NameValuePair("smsMob","接收号码"),
Java邮件发送功能实现详解:SMTP协议与JavaMail API
Java邮件发送功能实现详解:SMTP协议与JavaMail API
简介
在现代社会中,电子邮件已经成为人们日常沟通的重要方式之一。而在Java编程领域,实现邮件发送功能同样是一项重要的任务。通过SMTP协议和JavaMail
API,我们可以很方便地在Java程序中实现邮件发送功能。本文将详细介绍如何使用SMTP协议和JavaMail API在Java程序中实现邮件发送功能。
SMTP协议
SMTP(Simple Mail Transfer Protocol)是用于邮件传输的协议,它定义了邮件是如何从发件人传送到收件人的过程。在使用Java实现邮件发送功能时,我们需要理解SMTP协议的工作原理,并按照协议规范来构建和发送邮件。
SMTP协议的工作流程通常包括以下步骤: 1. 发件人向SMTP服务器发送邮件;
2. SMTP服务器根据收件人的域名查找目标邮件服务器; 3. SMTP服务器将邮件传递给目标邮件服务器; 4. 目标邮件服务器将邮件存储在收件人的邮箱中。
JavaMail API
JavaMail API是一组用于处理电子邮件的Java类库,它提供了发送、接收和处理邮件的功能。通过JavaMail API,我们可以方便地在Java程序中实现各种邮件相关操作,包括发送邮件、接收邮件、附件处理等。
在使用JavaMail API发送邮件时,一般需要按照以下步骤进行: 1. 创建一个邮件会话(Session)对象; 2. 创建一个邮件(Message)对象,并设置发件人、收件人、主题、内容等信息; 3. 创建一个邮件传输(Transport)对象,并连接到SMTP服务器; 4. 发送邮件并关闭连接。
实现Java邮件发送功能
下面将以一个简单的示例来演示如何在Java程序中实现邮件发送功能。假设我们要发送一封包含文本内容的简单邮件。
```java import java.util.Properties; import javax.mail.; import javax.mail.internet.;
基于Javamail的邮件收发系统-使用说明
基于Javamail的邮件收发系统使用说明书
基于Javamail的邮件收发系统是一款简单、方便、快捷的邮件系统。它能实现邮件的接收与发送,并能完成附件的传输,具有较好的人机交互性,易于使用。
开发环境:JDK1.6 + Windows平台
开发技术:Javamail
开发工具:Eclipse3.4
运行环境:PC上需安装JDK1.6,且正确配置环境变量。
系统基本功能如下:
(1) 收取并显示POP3邮件服务器上指定邮箱的邮件;
(2) 使用SMTP邮件服务器发送邮件;
(3) 邮件附件的发送与接受;
(4) 删除邮件;
具体操作步骤如下:
1、 打开javamailsystem文件夹,找到javamail.jar可执行文件,双击该执行文件,即可打开Javamail邮件收发系统客户端软件。进入该系统后,首先选择“POP3/SMTP设置”按钮,对收发邮件所需的邮件服务器主机、收发邮件账号及密码信息进行设置。
图1-1邮件客户端主界面
设置举例如下:
POP3属性
POP3服务器:(或或)
Email地址:shinning191@(ceshi2009ok@、qiufeng006@)
账户名:shinning191(ceshi2009ok、qiufeng006)
密码:6857191(123456、28912786)
SMTP属性
SMTP服务器:(或或)
Email地址:shinning191@(ceshi2009ok@\qiufeng006@)
账户名:shinning191(ceshi2009ok、qiufeng006)
密码:6857191(123456、28912786)
在对SMTP/POP3进行设置的时候,由于系统的缺陷,需要先对POP3进行属性设置,然后确定关闭该对话框;重新打开属性设置对话框,对SMTP进行属性设置,确定。这样便可以正确设置完邮件服务器的属性。
JavaMail发送邮件实例——给多人发送、抄送
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development
Kit),这就意味着你在使用前必须另外下载JavaMail文件。
JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。
关键技术:
1、MimeMessage的setRecipients方法设置邮件的收件人,其中Message.RecipientType.TO常量表示收件人类型是邮件接收者,常量表示收件人类型是抄送者,Message.RecipientType.BCC常量表示收件人的类型是密送着。
2、在调用MimeMessage的setRecipients方法时,除了可以指定收件人的类型外,还可以传入一个数组,指定多个收件人的地址。
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.InternetAddress;
javaQQ邮件发送代码
javaQQ邮件发送代码
public class EmailDemo {
public static void main(String[] args) throws
AddressException, MessagingException {
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");//链接时的协议
props.setProperty("mail.smtp.host", "");//主机
props.setProperty("mail.smtp.port","465");//主机名
props.setProperty("mail.smtp.auth","true");//是否开启权限控制
props.setProperty("mail.smtp.ssl.enable","true");//是否开启权限控制
props.setProperty("mail.debug","true");//如果为true则会发送邮件是打印发送的信息
//创建程序到邮件服务器的第一次回话,即家到邮局的路
Session session = Session.getInstance(props);
//获取邮件对象
MimeMessage message = new MimeMessage(session);//获取信封
message.setFrom(new
InternetAddress("*****************"));//写上发送人,即发送方
message.setRecipients(RecipientType.TO, new
InternetAddress[]{new
InternetAddress("*****************")});//写上收件人,第二个参数为数组,因为收件人可以有多个
Java发送邮件
Java发送邮件
Java 发送邮件
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。那么大家知道Java 如何发送邮件呢?下面一起来看看!
Java 发送邮件
使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。
您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个
Downloads 链接,点击它下载。
您可以从 Java 网站下载最新版本的 JAF(版本 1.1.1)。
你也可以使用本站提供的下载链接:
JavaMail mail.jar 1.4.5
JAF(版本 1.1.1) activation.jar
下载并解压缩这些文件,在新创建的顶层目录中,您会发现这两个应用程序的一些 jar 文件。您需要把 mail.jar 和activation.jar 文件添加到您的 CLASSPATH 中。
如果你使用第三方邮件服务器如QQ的SMTP服务器,可查看文章底部用户认证完整的实例。
发送一封简单的 E-mail
下面是一个发送简单E-mail的例子。假设你的localhost已经连接到网络。
SendEmail.java 文件代码:
// 文件名 SendEmail.java import java.util.*; import javax.mail.*;
import javax.mail.internet.*; import javax.activation.*; public class
SendEmail { public static void main(String [] args) { // 收件人电子邮箱Stringto="**************";//发件人电子邮箱 String from
java实现邮件发送
java实现邮件发送
本⽂实例为⼤家分享了java实现邮件发送的具体代码,供⼤家参考,具体内容如下
1.使⽤socket通信功能实现java的邮件传输
1.1 什么是socet
Socket的英⽂原义是“孔”或“插座”。在⽹络编程中,⽹络上的两个程序通过⼀个双向的通信连接实现数据的交换,这个连接的
⼀端称为⼀个socket。
Socket套接字是通信的基⽯,是⽀持TCP/IP协议的⽹络通信的基本操作单元。它是⽹络通信过程中端点的抽象表⽰,包含进
⾏⽹络通信必须的五种信息:连接使⽤的协议,本地主机的IP地址,本地进程的协议端⼝,远地主机的IP地址,远地进程的协
议端⼝。
Socket本质是编程接⼝(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做⽹络开发所⽤的接⼝,这就是Socket编程接
⼝;HTTP是轿车,提供了封装或者显⽰数据的具体形式;Socket是发动机,提供了⽹络通信的能⼒。
1.2.Socket的原理
Socket实质上提供了进程通信的端点。进程通信之前,双⽅⾸先必须各⾃创建⼀个端点,否则是没有办法建⽴联系并相互通
信的。正如打电话之前,双⽅必须各⾃拥有⼀台电话机⼀样
套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
1、服务器监听:是服务器端套接字并不定位具体的客户端套接字,⽽是处于等待连接的状态,实时监控⽹络状态。
2、客户端请求:是指由客户端的套接字提出连接请求,要连接的⽬标是服务器端的套接字。为此,客户端的套接字必须⾸先
描述它要连接的服务器的套接字,指出服务器端套接字的地址和端⼝号,然后就向服务器端套接字提出连接请求。
3、连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建⽴⼀
个新的线程,把服务器端套接字的描述发给客户端,⼀旦客户端确认了此描述,连接就建⽴好了。⽽服务器端套接字继续处于
监听状态,继续接收其他客户端套接字的连接请求。
