java outlook 发送邮件_基于java使用JavaMail发送邮件

article/2025/9/14 4:08:58

一、邮件的相关概念

邮件协议。主要包括:

SMTP协议:Simple Mail Transfer Protocol,即简单邮件传输协议,用于发送电子邮件

POP3协议:Post Office Protocol 3,即邮局协议的第三个版本,用于接收邮件

IMAP协议:Internet Message Access Protocol,即互联网消息访问协议,是POP3的替代协议

--------------------------------------------------------------------------------

二、搭建James邮件服务器

James是Apache的一个开源项目,纯Java实现

搭建James服务器

① 下载apache-james-2.3.2.zip解压

② 运行bin目录下的run.bat即可启动服务器[Telnet  localhost 4555]

③ 通过apps\james\SAR-INF\config.xml配置服务器

注:先到bin下run一道。 放如非中文目录, 得再控制面板开启Telnet客户端

--------------------------------------------------------------------------------

三、安装OutLook[邮件客户端]

产品秘钥:PQDV9-GPDV4-CRM4D-PHDTH-4M2MT

创建用户账号

一、使用telnet连接James的Remote Administration Tool

二、以管理员身份登录

三、使用adduser命令添加用户

--------------------------------------------------------------------------------

四、配置outlook邮件客户端

为了方便查看,可以配置Microsoft Outlook邮件客户端,保证James邮件服务器是启动状态,启动Microsoft Outlook.

选择“工具”->“选项”,打开“选项”面板。选择“邮件设置”并点击“电子邮件账户”,打开“账号设置”面板。在“电子邮件”选项卡下新建邮件账户

--------------------------------------------------------------------------------

五、案例[搭建James邮件服务器]

需求说明:

在本机搭建James邮件服务器,自定义服务器的名称。

创建两个测试用户。

在Microsoft Outlook中配置其中一个测试用户为Outlook邮件账户

6810a817218656d753000d383d427531.png

--------------------------------------------------------------------------------

六、使用JavaMail发送电子邮件(案例)

需求:

使用JavaMail技术,实现从A账户给B账户发送一封电子邮件,标题为“会议通知”,邮件内容为“XX你好!请于明天下午16:00 准时到B01会议室召开技术讨论会。”通过Outlook 客户端查看邮件程序发送的邮件是否发送成功

关键代码:

创建一个类EmailAuthenticator并继承自Authenticator,并植入用户名和密码

084de1fe8d07dcf6fb8ac3aeb78cfe3d.png

创建Mail类设置邮件信息:

public class Mail {

private String mailServer,from,to,mailSubject,mailContent;

private String username,password;

public Mail(){

//设置邮件信息

//进行认证登录的用户名

username="hq@mail.com";

//认证密码

password="hq";

//认证的邮箱对应的邮件服务器

mailServer="192.168.17.176";

//发件人信息

from="wj";

//收件人信息

to="wj@mail.com";

//邮件标题

mailSubject="我们都是好孩子333";

//邮件内容

mailContent="这是一封测试邮件!如有雷同,纯属不可能";

}

//设置邮件服务器

@SuppressWarnings("static-access")

public void send(){

Properties prop=System.getProperties();

//指定邮件server

prop.put("mail.smtp.host", mailServer);

//是否开启认证

prop.put("mail.smtp.auth", "true");

//smtp协议的

prop.put("mail.smtp.port", "25");

//产生Session服务

EmailAuthenticator mailauth=new EmailAuthenticator(username, password);

Session mailSession=Session.getInstance(prop,(Authenticator)mailauth);

try {

//封装Message对象

Message message=new MimeMessage(mailSession);

message.setFrom(new InternetAddress(from)); //发件人

message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));//收件人

message.setSubject(mailSubject);

//设置内容(设置字符集处理乱码问题)

message.setContent(mailContent,"text/html;charset=gbk");

message.setSentDate(new Date());

//创建Transport实例,发送邮件

Transport tran=mailSession.getTransport("smtp");

tran.send(message,message.getAllRecipients());

tran.close();

} catch (Exception e) {

e.printStackTrace();

}

}

测试类:

public class MyTest {

public static void main(String[] args) {

Mail mail=new Mail();

mail.send();

System.out.println("success!");

}

}

0fb09b975776b112727ddddcf2e9a7a2.png

fd0baa728b52ad8ed183019e3cd65856.png

--------------------------------------------------------------------------------

七、发送带附件的Mail

public class MailWithAttachment {

private JavaMailSender mailSender; //必须使用 JavaMailSender

public void setMailSender(JavaMailSender mailSender) {

this.mailSender = mailSender;

}

public void send() throws MessagingException,IOException{

MimeMessage mimeMessage = mailSender.createMimeMessage();

MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

helper.setFrom("hq@mail.com");

helper.setTo("wj@mail.com");

helper.setSubject("哈哈哈");

helper.setText("每日一笑,开开心心!!!");

//添加附件1

ClassPathResource file1 = new ClassPathResource(

"/cn/bdqn/attachfiles/test.doc");

helper.addAttachment(file1.getFilename(), file1.getFile());

//添加附件2:附件的文件名为中文时,需要对文件名进行编码转换,解决乱码问题

ClassPathResource file2 = new ClassPathResource(

"/cn/bdqn/attachfiles/附件测试文件.doc");

helper.addAttachment(MimeUtility.encodeWord(file2.getFilename()),file2.getFile());

mailSender.send(mimeMessage);

}

}

测试类:

public class MailTest {

public static void main(String[] args){

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

/*测试带附件的邮件*/

try{

MailWithAttachment mailWithAttach = (MailWithAttachment)context.getBean("mailWithAttachment");

mailWithAttach.send();

}catch(Exception e){

System.out.print(e.toString());

}

}

}

applicationContext.xml:大配置

5435c4e9cbad1767f65c971e72d47d23.png

820feab2ff65e9244329ed5de993bee9.png

341231c0d164b423bcac7a80a83e0aa0.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


http://chatgpt.dhexx.cn/article/D4Ig1618.shtml

相关文章

java 发邮件(有正文,有图片,有附件)

一 需求: 1 java实现邮件发送 2 发送内容: ① 正文: 图片说明和图片 ② 附件一: 图片作为附件发送 ③ 附件二: Excel表格 二 思路: 1首先创建一个 Java 工程,把下载好的 javax.mail.jar 作为类库加入工程 2邮件创建步骤: 配置连接邮件服务器的参数( 邮件服务器SM…

java接收邮件_Java实现邮件收发

一. 准备工作 1. 传输协议 SMTP协议-->发送邮件: 我们通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器) POP3协议-->接收邮件: 我们通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器) 2. 邮件收发原理 闪电…

java发送邮件工具类

1. 普通java实现邮件发送 1.1 创建maven项目&#xff0c;配置pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

java发送邮件带附件

一、 开启SMTP服务 1.基本都在邮箱设置里&#xff0c;开启后会获得神秘代码&#xff0c;后面有用。 2.记得添加依赖&#xff0c;或者自己添加jar包。 <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>…

java 邮件模板

邮件发送代码可参照 java 发送邮件 1.情形 邮件发送代码可参照上述&#xff0c;本例只说明如果读取模板文件。公司定义模板较为复杂的情况&#xff0c;可采用此类发送方式 2. 模板 2.1 resource 建立模板 2.2 ftl 模板如下 <p>您好&#xff0c;${name}&#xff0c;您…

使用JAVA实现邮件发送功能

一、准备工作 小编今天以 QQ邮箱 进行演示操作。 想要使用代码操作邮箱发送邮件&#xff0c;需要在邮箱设置中申请开通 POP3/SMTP 服务。 接下来跟着小编的图文一步一步的操作开通吧&#xff01; 1.1 登录网页QQ邮箱&#xff0c;点击页面顶部设置按钮。 1.2 点击后会打开邮箱…

java发送qq邮件

1.登录qq邮箱 1&#xff09;点击设置 2&#xff09;点击账户 3&#xff09;开启第一个服务&#xff0c;我已经开过了 4&#xff09;开启验证&#xff08;让你发送指定内容到某个号码&#xff09;&#xff0c;完成后点击我已发送&#xff0c;就会出现授权码&#xff0c;授权码很…

java实现邮件发送

一.第一步:导入两个jar包。 activation.jar 和 mail.jar, 一定要添加到构建路径(不然找不到包) 两个用于Java发送邮件的jar包-Java文档类资源-CSDN下载 二、创建邮箱工具类:Mail.java import java.util.*; import java.io.*; import javax.mail.*; import javax.m…

Java(81):Java发邮件简单示例

Java Email jar包下载地址&#xff1a;JavaMail API https://www.oracle.com/java/technologies/javamail.html JavaMail 右侧下载&#xff0c;选择jar包下载 API文档参考&#xff1a;JavaMail API documentation https://javaee.github.io/javamail/docs/api/ 或直接引用…

java发送qq邮件_「java发邮件」Java 通过SMTP实现发送QQ邮件 - seo实验室

java发邮件 在Eclipse中创建项目&#xff0c;并把javax.amil.jar和commons-email-1.5,jar复制到项目中 链接&#xff1a;https://pan.baidu.com/s/1sQjA1GEpKi6IJJRGHKxjeA 密码&#xff1a;4ene 添加步骤&#xff1a; 1.首先在项目下创建一个文件夹&#xff0c;保存我们的jar包…

Java发邮件配置-hutool+腾讯企业邮箱

1、技术选型 1.1、hutool工具 1.2、javax.mail 1.3、腾讯企业邮箱2、环境准备 2.1、pom <!--javax.mail--><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependen…

Java(83)Java发邮件简单工具类

1、Maven引用 <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api --><dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.2</version></dependency><…

java发邮件 动态切换当前发送人

最近项目需要实现一个发送邮件功能&#xff0c;踩了一些坑&#xff0c;最终实现了。 在此写一下心得 开始做的时候一塌糊涂&#xff0c;觉得挺难的&#xff0c;但是做完之后发现其实简单的一批&#xff0c;接下来我就来写一下实现流程。 1、准备好拿来发送邮件的账号&#xf…

Java 发邮件-带附件且正文html格式

入职新公司不久&#xff0c;接到一个给用户发邮件的需求&#xff0c;有两点需要说明的&#xff1a;1&#xff09;正文需要格式化&#xff1b;2&#xff09;需要带附件。 大概了解了一下需求&#xff0c;我马上开始思考&#xff0c;现有项目中是否有类似的接口可以支持&#xf…

java实现发送邮件

本文介绍下java实现邮件的发送&#xff0c;意在网站用户评论时能够及时通知站长和用户评论被回复后能够及时通知用户。 下文介绍下具体实现。 java实现 首先引入springboot的邮箱依赖 <dependency><groupId>org.springframework.boot</groupId><artif…

java邮件发送

一、JavaMail介绍 1、概述 JavaMail是利用现有的邮件账户发送邮件的工具&#xff0c;比如我在网易注册一个邮箱账户&#xff0c;通过JavaMail的操控&#xff0c;我可以不亲自登录网易邮箱&#xff0c;让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮…

使用Java实现邮件的发送

数年前&#xff0c;邮件的发送是经过人为的运输&#xff0c;从发件人---当地邮局---收件地邮局---收件人&#xff0c;付出的人力物力是非常大的。随着时代的进步&#xff0c;科技的发展&#xff0c;如今我们的生活中出现更高级发送邮件的方式&#xff0c;最常用的就是从&#x…

Java发送邮件详解

目录 一、关于电子邮件 电子邮件 传输协议 SMTP协议 POP3协议 邮件收发原理 二、发送纯文本邮件 二、发送带图片和附件的邮件 一、关于电子邮件 电子邮件 要在网络上实现邮件功能&#xff0c;必须要有专门的邮件服务器。 这些邮件服务器类似于现实生活中的邮局&…

基于JavaMail的Java邮件发送:简单邮件发送

本文链接: https://blog.csdn.net/xietansheng/article/details/51673073 电子邮件的应用非常广泛&#xff0c;例如在某网站注册了一个账户&#xff0c;自动发送一封欢迎邮件&#xff0c;通过邮件找回密码&#xff0c;自动批量发送活动信息等。但这些应用不可能和我们自己平时…

js 实现计数器功能

1.运用 setInterval()定时器计算秒数 <!DOCTYPE html> <html><head><title>JS实现计数器</title><meta http-equiv"content-type" content"text/html; charsetgbk"><script src"https://cdn.bootcss.com/jqu…