一、邮件的相关概念

邮件协议。主要包括:

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邮件账户

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

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

需求:

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

关键代码:

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

创建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!");

}

}

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

七、发送带附件的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:大配置

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

java outlook 发送邮件_基于java使用JavaMail发送邮件相关推荐

  1. java邮件系统设计_基于java技术的邮件系统设计与实现

    论文字数:17915,页数:38 摘  要 电子邮件(简称E-mai1)又称电子信箱.电子邮政,它是-种用电子手段提供信息交换的通信方式.它是全球多种网络上使用最普遍的一项服务.这种非交互式的通信,加 ...

  2. java path类_基于java Files类和Paths类的用法(详解)

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem ...

  3. java 实现违章_基于JAVA的车辆违章查询数据调用代码实例

    基于JAVA的车辆违章查询数据调用代码实例 代码描述:基于JA V A的车辆违章查询数据调用代码实例 相关平台:聚合数据 import java.io.BufferedReader; import j ...

  4. java消费者模式_基于Java 生产者消费者模式(详细分析)

    生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...

  5. java 酒店系统_基于JAVA的酒店管理系统

    <基于JAVA的酒店管理系统>由会员分享,可在线阅读,更多相关<基于JAVA的酒店管理系统(31页珍藏版)>请在人人文库网上搜索. 1.酒店管理系统,专业: 姓名: 指导教师, ...

  6. java订单类_基于Java创建一个订单类代码实例

    这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订 ...

  7. java 雅思_基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)

    基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)(任务书,毕业论文12000字,程序代码,MySQL数据库) 本文分析了基于JAVA的雅思考试管理系统的设计与实现技术,结合实 ...

  8. java全文检索功能_基于Java的全文检索引擎简介

    Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基 ...

  9. java zip追加_基于Java向zip压缩包追加文件

    这篇文章主要介绍了基于Java向zip压缩包追加文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 有个需求,从某个接口下载的一个zip压缩包,往里 ...

最新文章

  1. Wi-Fi与LTE走向融合,优势互补携手共赢
  2. Architecture:话说科学家/工程师/设计师/商人
  3. 目录与文件的相关操作
  4. 单图说TDSQL;OceanBase 2.2 事务引擎核心功能;穿云箭2.0版发布;RMAN DUPLICATE配置19C DG;外键上有无索引的影响;MySQL8.0 索引新功能;GaussDB C
  5. adb 最大连接_工具集 | Android Studio—使用 WI-FI 进行 ADB 调试
  6. 小程序优化处理解决方案1 请求和setData
  7. Linux 内核进程管理之进程ID【转】
  8. java毕业设计小小银动漫网站源码+lw文档+mybatis+系统+mysql数据库+调试
  9. 补题:HOJ吉林selection B-Bribing Eve(Gym-101174B) (象限极角排序)
  10. android代码实现删除,Android中RecyclerView实现Item添加和删除的代码示例
  11. 软件测试 | 期末复习——软件测试综述
  12. 用ArcGIS Server服务Print打印高清大图的关键参数
  13. 用火狐浏览器看b站视频默认没有声音
  14. 数据库之通过例子了解单表查询
  15. Web前端(15)_input表单
  16. 二、Linux 文件与目录结构、VI/VIM 编辑器(重要)
  17. dlopen与dlsym用法
  18. css3 烟 蚊香_如何用纯 CSS 创作一盘传统蚊香
  19. 想跳槽?先看什么是好工作
  20. 黑白简约Mac高清动态壁纸

热门文章

  1. 在nodejs websocket回调函数中没法用this
  2. Involved Parties Object ID generation logic
  3. rtl support
  4. SAP Hybris Accelerator的安装和使用方式
  5. 关于SAP Commerce product API对description字段的处理
  6. 今日头条Web HTTP请求的白名单
  7. OAuth 2.0协议在SAP产品中的应用
  8. Linux unshare命名的一些例子
  9. SAP CRM settype的创建,背后发生了什么
  10. 热点效应是指_热电偶的热电效应是什么意思 浅谈热电偶下的热点效应