为什么使用465端口呢:

因为阿里云服务器以安全为由将25端口给封了,无法使用25号端口发送邮件,所以只有使用465端口啦。

实现java发送邮件的过程大体有以下几步:

1. 准备一个properties文件,该文件用于存放SMTP服务器地址等参数。

2. 利用properties创建一个Session对象

3. 利用Session创建Message对象,然后设置邮件主题,收件人及正文等信息

如果发送文本邮件,使用message.setText(content)。

如果发送html邮件,使用message.setContent(content, "text/html;charset=utf-8")。

如果发送带附件的邮件,使用message.setContent(multipart)。

multipart对象是一个用于装附件的容器。

multipart.addBodyPart(bodyPart)将附件装入multipart容器。

bodyPart是一个附件对象。

bodyPart.setDataHandler(new DataHandler(new FileDataSource("文件路径")));将文件包装成附件。

4. 利用Transport对象发送邮件

准备条件

1.两个jar包,网上到处都是随便下载。

下面两个网站有大量的jar包

http://www.manyjar.com/

http://maven.ibiblio.org/maven/

2.如果可以,就准备一个配置文件,但不准备也行,至于为什么,看代码就知道了。

以下是使用465端口发送文本邮件和带有附件的邮件的例子。

package com.wenba1314.tools;import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;public class EmailTool {//创建pro用于保存所需的数据public static Properties pro;static {pro = new Properties();try {/*加载配置文件,配置文件需要有from字段用于保存发件人账号password为代理密码注意此密码并非邮箱账户密码,而是开启客户端代理时设置的密码*/pro.load(EmailTool.class.getClassLoader().getResourceAsStream("email.properties"));} catch (Exception e) {System.out.println("配置文件未找到,使用默认的账户发送!");pro.setProperty("from", "********@163.com");pro.setProperty("password", "********");}pro.setProperty("mail.smtp.ssl.enable", "true");pro.setProperty("mail.smtp.host", "smtp.163.com");pro.setProperty("mail.smtp.port", "465");pro.setProperty("mail.smtp.auth", "true");pro.setProperty("mail.debug","true");}public static void main(String[] args) {System.out.println(pro);sendTextMessage("********@qq.com","你是猪变得么","猪啊");sendEmailWithAttachments("********@qq.com","c:\\Users\\pc\\Desktop\\a.jpg","猪啊");}//发送普通的文本文件,一般用于网站向用户发送验证码。第一个参数为收件人地址,第二个参数为文本信息,第三个参数为邮件主题public static void sendTextMessage(String toEmailAddress, String content, String subject) {//创建session对象,第一个参数为连接邮件服务器的连接信息,第二个为身份验证的接口,重写抽象方法,参数为登陆邮件服务器的代理账号密码。Session session = Session.getDefaultInstance(pro, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(pro.getProperty("from"), pro.getProperty("password"));}});try {//创建消息对象MimeMessage message = new MimeMessage(session);//设置发件人message.setFrom(new InternetAddress(pro.getProperty("from")));//设置收件人message.addRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress(toEmailAddress)});//设置文本主题message.setSubject(subject);//设置文本内容message.setText(content);//使用静态方法发送邮件,此静态方法包装了保存内容,连接服务器等方法。Transport.send(message);} catch (Exception e) {e.printStackTrace();}}//发送带附件的邮件,第一个参数为收件人地址,第二个参数为附件路径,第三个参数为邮件主题public static void sendEmailWithAttachments(String toEmailAddress,String NameOfTheAttachment ,String subject) {//创建session对象,第一个参数为连接邮件服务器的连接信息,第二个为身份验证的接口,重写抽象方法,参数为登陆邮件服务器的代理账号密码。Session session = Session.getDefaultInstance(pro, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(pro.getProperty("from"), pro.getProperty("password"));}});try {//创建消息对象MimeMessage message = new MimeMessage(session);//设置发件人message.setFrom(new InternetAddress(pro.getProperty("from")));//设置收件人message.addRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress(toEmailAddress)});//设置文本主题message.setSubject(subject);// 添加附件/*创建multipart对象,*并向其中添加邮件的各个部分内容,包括文本内容和附件,* 然后将此对象放入MimeMessage对象中,使用message.setContent(multipart);* */Multipart multipart = new MimeMultipart();if (NameOfTheAttachment != null && !"".equals(NameOfTheAttachment)) {// 根据路径获取文件FileDataSource dataSource = new FileDataSource(NameOfTheAttachment);//创建附件对象BodyPart bodyPart = new MimeBodyPart();//设置附件内容bodyPart.setDataHandler(new DataHandler(dataSource));//设置附件名//MimeUtility.encodeWord可以避免文件名乱码bodyPart.setFileName(MimeUtility.encodeWord(dataSource.getFile().getName()));//将附件放入multipart中multipart.addBodyPart(bodyPart );}// 将multipart放入message中message.setContent(multipart);//使用静态方法发送邮件,此静态方法包装了保存内容,连接服务器等方法。Transport.send(message);} catch (Exception e) {e.printStackTrace();}}
}

java email邮件发送465相关推荐

  1. Java Mail 邮件发送(一):入门Demo

    本文首发于简书,Java Mail 邮件发送(一):Demo 上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以 ...

  2. android javamail获取邮件太多太慢_java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)

    如何使用IMAP服务? 首先介绍一些邮件发送的基础知识,如果你已经知道可以跳过. 直接到 Email 邮件发送实现的部分. IMAP是什么? IMAP,即Internet Message Access ...

  3. 用java实现邮件发送验证码

    java实现邮件发送验证码 网易邮箱开通POP3SMTP服务的步骤 java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SM ...

  4. java实现邮件发送, 抄送及多附件发送

    java实现邮件发送, 抄送及多附件发送 所需的jar包  mailapi.jar和smtp.jar  或  javax-mail-xxx.jar(如javax.mail-1.5.6.jar)  ht ...

  5. 用java实现邮件发送

    电子邮件 1.基础知识铺垫 要在网络上实现邮件功能,必须要有专门的邮件服务器. 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过的邮件,并把邮件投递到邮件接收者的电子邮箱中. SMTP服 ...

  6. SpringBoot整合Email 邮件发送

    文章目录 一.准备 二.邮件发送需要的配置 获取163邮箱授权码 获取QQ邮箱授权码 YML配置 三.代码编写 普通邮件发送 HTML邮件发送 含静态资源邮件发送 带附件邮件发送 SpringBoot ...

  7. Bella Email邮件发送模板

    简介: Bella Email邮件发送模板是一款HTML5网站模板.aspku提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢. 下载地址: http://www.bytepan.com/X3 ...

  8. Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 下篇

    Email邮件设置(网易邮箱.Mailgun)  下篇 说明:STMP服务邮件发送工具类,其中包括文本发送.html发送.附件发送. 1.maven pom 配置 <dependency> ...

  9. Java Email以及发送Email附件

    我们首先了解一下传统的邮件是如何进行发送的,首先把邮件发送到当地的邮局,当地的邮局又把邮件发送给目的地附近的邮局,最后目的地附近的邮局把邮件发送到目的地. 其实Email的发送方式也是类似,我们把类似 ...

最新文章

  1. 这是我见过的GAN的最佳用法!
  2. DL动态加载框架技术
  3. 网络安全等级保护测评高风险判定指引_等保知识|测评高风险项详解:安全管理中心...
  4. Python Django单表查询之日期查询(大于小于范围查询)
  5. lightoj 1037 - Agent 47(状压dp)
  6. jpa mysql存储过程_spring data jpa 如何调用mysql存储过程?
  7. 第4次作业类测试代码 021
  8. zzbower入门教程
  9. 058线性反馈移位寄存器产生m序列
  10. IIS无法启动,提示另外一个程序正在使用此文件
  11. SVM---通俗易懂图解高斯核函数及实现
  12. 面试技巧:HR常问的70个问题回答技巧
  13. 编译原理——自顶向下分析中FOLLOW集的计算
  14. 莺尾花数据(画出不同分类器的ROC曲线)
  15. 机器学习算法SVM(支持向量机)
  16. 我找到的一些google搜索技巧
  17. php学习报告_论坛PHP报告
  18. 拥有谷歌100万股原始股,奥尼尔每年能够得到多少分红?
  19. 小程序 wx.navigateTo和 wx.redirectTo区别
  20. github上开源iot物联网云平台thingsboard项目,将前段打包成app的方法研究

热门文章

  1. 天津大学新校区计算机学院,天津大学新校区规划最终方案月底出炉地铁将连接新老校区...
  2. 计算机专业考研方向及院校排名(转)
  3. Hive练习题之列转行
  4. 硫化铅量子点,PbS QDs,近红外PbS量子点的特性(波尔半径大,量子效应显著)
  5. Linux初窥:CentOS配置本地yum源与网络yum源
  6. MySQL 字符集utf8、utf8mb3、utf8mb4
  7. 融云携新版实时音视频亮相 LiveVideoStack 2019
  8. WPF程序员开发案例
  9. 权威发布丨2021 中国开源先锋 33 人之心尖上的开源人物
  10. 英国女王伊丽莎白二世登基60周年演讲(视频+双语)