javamail

JavaMail入门第三篇 发送邮件

怎甘沉沦 提交于 2020-05-08 23:47:12
JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Message对象中封装的邮件数据发送到指定的SMTP服务器。使用JavaMail发送邮件时设计到的主要API之间的工作关系如下所示: 1、从Session对象中获得实现了某种邮件发送协议的Transport对象; 2、使用Session对象创建Message对象,并调用Message对象的方法封装邮件数据; 3、连接指定的SMTP服务器,调用Transport对象中的邮件发送方法Message对象中封装的邮件数据。 在 JavaMail入门第二篇 创建邮件 一文中,我们学会了创建邮件,不过当时我们是将邮件写入到我们的本地磁盘中,接下来我们用JavaMail API提供的Transport类来发送邮件 1 import java.util.Date; 2 import java.util.Properties; 3 4 import javax.mail.Message; 5 import javax.mail.Session; 6 import javax.mail.Transport; 7 import javax.mail.internet.InternetAddress; 8

【Mail】JavaMail介绍及发送邮件(一)

扶醉桌前 提交于 2020-05-08 23:46:24
JavaMail介绍   JavaMail是SUN提供给开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发类库,支持常用的邮件协议,如SMTP、POP3、IMAP,开发人员使用JavaMail编写邮件程序时,无需考虑底层的通信细节(Socket),JavaMail也提供了能够创建出各种复杂MIME格式的邮件内容的API。使用JavaMail,我们可以实现类似OutLook、FoxMail的软件。虽然JavaMail(仅支持JDK4及以上)也是 Java 的API之一,但是却没有直接加入到JDK中,所以我们需要另行下载。另外,JavaMail依赖JAF(JavaBeans Activation Framework),JAF在Java6之后已经合并到JDK中,而JDK5之前需要另外下载JAF的类库。   JavaMail下载地址: http://www.oracle.com/technetwork/java/javamail/index.html JavaMail发送邮件   邮件的方发送过程可以参照: 【Mail】telnet收发邮件过程 ;本例中主要流程是:先创建一个Message(邮件对象),然后使用Transport(邮件传输对象)发邮件发送到邮件服务器。 先新建一个javaweb的maven项目。参照: 【Maven】Eclipse 使用Maven创建Java

【JavaMail】SpringBoot集成JavaMail

可紊 提交于 2020-05-08 23:44:23
前言: 工作生活中,经常会用邮件告知收件人,例如我们经常碰到的注册验证邮件。早期大家都用JavaMail相关的API来写发送邮件,后来spring推出JavaMailSender简化了邮件发送过程(有兴趣的朋友可以自行研究一下JavaMailSender这个接口),再之后springBoot对此封装有了现在的spring-boot-starter-mail。 JavaMail是Sun定义的一套收发电子邮件的API,是JavaEE一部分。JavaMailSender底层也是基于JavaMailjar包的。 通信协议: SMTP:简单邮件传输协议,用于发送电子邮件的传输协议; POP3:用于接收电子邮件的标准协议; IMAP:互联网消息协议,是POP3的替代协议。 这三种协议都有对应SSL加密传输的协议,分别是SMTPS,POP3S和IMAPS。除JavaMail服务提供程序之外,JavaMail还需要JAF(JavaBeans Activation Framework)来处理不是纯文本的邮件内容,这包括MIME(多用途互联网邮件扩展)、URL页面和文件附件等内容。 正文: JavaMail中的关键对象。 Properties :属性对象。针对不同的的邮件协议, JavaMail 规定了服务提供者必须支持一系列属性。 Session :会话对象。和web中的session不一样的

JavaMail入门第三篇 发送邮件

折月煮酒 提交于 2020-05-08 23:31:18
JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Message对象中封装的邮件数据发送到指定的SMTP服务器。使用JavaMail发送邮件时设计到的主要API之间的工作关系如下所示: 1、从Session对象中获得实现了某种邮件发送协议的Transport对象; 2、使用Session对象创建Message对象,并调用Message对象的方法封装邮件数据; 3、连接指定的SMTP服务器,调用Transport对象中的邮件发送方法Message对象中封装的邮件数据。 在 JavaMail入门第二篇 创建邮件 一文中,我们学会了创建邮件,不过当时我们是将邮件写入到我们的本地磁盘中,接下来我们用JavaMail API提供的Transport类来发送邮件 1 import java.util.Date; 2 import java.util.Properties; 3 4 import javax.mail.Message; 5 import javax.mail.Session; 6 import javax.mail.Transport; 7 import javax.mail.internet.InternetAddress; 8

SendMail发送回执及读取收件箱

大兔子大兔子 提交于 2020-05-08 21:22:02
一、SendMail发送有回执提示   1.邮件发送配置 Properties props = new Properties(); String smtp = "smtp.qq.com"; // 使用域名地址,建议不要使用ip地址,因为IP有可能会换掉。 String servername = "******@qq.com" ; String serverpaswd ="*******"; // QQ邮箱的SMTP的授权码 javax.mail.Session mailSession; // 邮件会话对象 javax.mail.internet.MimeMessage mimeMsg; // MIME邮件对象 props = java.lang.System.getProperties(); // 获得系统属性对象 props.setProperty("mail.smtp.timeout", "120000"); // 2分钟 props.put("mail.smtp.host", smtp); // 设置SMTP主机 props.put("mail.smtp.auth", "true"); // 是否到服务器用户名和密码验证 // 到服务器验证发送的用户名和密码是否正确 Email_Autherticatorbean myEmailAuther = new Email

JavaMail入门第一篇 邮件简介及API概述

你离开我真会死。 提交于 2020-05-08 21:21:28
现如今,电子邮件在我们的生活当中扮演着越来越重要的角色,我们每个人几乎都会与其打交道(至少时不时我们都会接收到莫名其妙的垃圾邮件),在工作中,使用邮件进行交流沟通,可以使我们的工作有迹可循,也显的较为正式,这是由我们人为手工操作的,在生活中,在某网站注册了一个账户之后,该网站就会自动发送一封欢迎邮件并让我们确认是否注册,以防止恶意注册,当然,这个就不可能像我们工作中手工方式来进行操作了,Java的13种核心技术中的JavaMail为我们提供了API来对邮件进行相关的操作。 一、邮件服务器 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。Internet上架设了大量的电子邮件服务器,例如,sina.com、qq.com、163.com等网站提供了面向公众免费的电子邮件服务器,许多公司也提供了面向内部员工的电子邮件服务器,这些电子邮件服务器彼此之间都可以发送和接收电子邮件。那邮件服务器的作用是什么呢,它可以帮我们把邮件发出去,也可以帮我们把邮件接收进来,还可以为我们提供取邮件的服务,这个类似于现实生活中的邮局,既可以接收邮件,也可以为我们取邮件提供服务,还可以帮我们发送邮件。下面的图片形象的说明了邮件服务器的功能 (1)接收用户投递的邮件; (2)将用户投递进来的邮件转发给目标邮件服务器; (3)接收其他邮件服务器转发来的邮件并把邮件存储到其管理的用户邮箱中; (4

邮件相关协议及JavaMail 包简介

老子叫甜甜 提交于 2020-05-08 21:20:45
1. 邮件服务器 按功能划分,邮件服务器可以划分为两种类型: SMTP邮件服务器:用于替用户发送邮件和接收外面发送给本地用户的邮件,相当于现实生活中邮局的邮件接收部门(可接收普通用户要投出的邮件和其他邮局投递进来的邮件)。 POP3/IMAP邮件服务器:用于帮助用户读取SMTP邮件服务器接收进来的邮件,相当于邮局里专门为前来取包裹的用户提供服务的部门。 2. 邮件发送和接收过程 163邮箱用户发送电子邮件到qq邮箱用户的过程如图所示,现解释如下: 163邮箱用户A编辑并发送电子邮件,交到163的邮箱服务器,这一步使用的是SMTP协议。 163邮箱根据用户A发送的邮件进行解析,判断收件地址如果为163邮箱,则存放到163邮箱存储空间;判断为其他邮箱,则将邮件转发到其他邮箱的服务器,转发使用的也是SMTP协议。 qq邮箱接收到163邮箱转发来的邮件,会进行判断收件地址是否是qq邮箱,如果是,则将邮箱存放于qq邮箱存储空间。 用户B登陆qq邮箱,与163的POP3/IMAP服务器建立网络连接,查找未读邮件,会通过客户端向163邮箱服务器发送请求。 163邮箱服务器接收到用户B发送的请求后,会去存储空间取出用户B未收取的邮件。 服务器取出邮件,将邮件发送给用户B,用户B是通过POP3或IMAP协议读取邮箱中的邮件的。 3. 电子邮件传输协议 电子邮件需要在邮件客户端和邮件服务器之间

can't determine local email address : Spring boot

依然范特西╮ 提交于 2020-04-19 19:32:07
问题 I'm using org.springframework.mail.javamail.JavaMailSender to send emails in my spring boot application. It was working fine before. I didn't change anything, it is not working now. Mail configuration @Bean public JavaMailSender javaMailService() { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setHost(host); javaMailSender.setPort(port); javaMailSender.setUsername(userName); javaMailSender.setPassword(password); javaMailSender.setJavaMailProperties

How to use javax.mail.internet.MimeBodyPart.setFileName to keep all characters?

陌路散爱 提交于 2020-04-16 12:48:11
问题 I need to create mails using javax.mail version 1.6.2 and would like to stick to high level methods as much as possible and would like to avoid dealing myself with character encoding, folding and whatever is necessary to get a valid mail in the end. One problem I'm currently dealing with is file names, because by default javax.mail.internet.MimeBodyPart.setFileName seems to encode any given name in a way that my mail client shows it differently than expected. Consider the following name

How to use javax.mail.internet.MimeBodyPart.setFileName to keep all characters?

折月煮酒 提交于 2020-04-16 12:47:26
问题 I need to create mails using javax.mail version 1.6.2 and would like to stick to high level methods as much as possible and would like to avoid dealing myself with character encoding, folding and whatever is necessary to get a valid mail in the end. One problem I'm currently dealing with is file names, because by default javax.mail.internet.MimeBodyPart.setFileName seems to encode any given name in a way that my mail client shows it differently than expected. Consider the following name