基于Javamail的邮件收发系统-任务书
- 格式:doc
- 大小:51.51 KB
- 文档页数:4
SpringBoot整合JavaMail通过阿⾥云企业邮箱发送邮件的实现JavaMail是Java开发中邮件处理的开源类库,⽀持常⽤协议如:SMTP、POP3、IMAP⼀、SpringBoot整合1、需要在pom⽂件中添加依赖spring-boot-starter-mail<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>构建项⽬,加载相关jar包2、在application.yml中配置邮件发送的相关信息spring:mail:host: #阿⾥云发送服务器地址port: 25 #端⼝号username: XXX@ #发送⼈地址password: ENC(Grg2n2TYzgJv9zpwufsf37ndTe+M1cYk) #密码3、编写邮件发送⼯具类MailUtilMailUtil.java/*** @author chenzan* @version V1.0* @description 邮件发送*/@Componentpublic class MailUtil {@AutowiredJavaMailSendermailSender;@AutowiredMailPropertiesmailProperties;/*** 发送邮件测试⽅法*/public void sendMail(MailBean mailBean) {SimpleMailMessage mimeMessage =new SimpleMailMessage();mimeMessage.setFrom(mailProperties.getUsername());mimeMessage.setTo(mailBean.getToAccount());mimeMessage.setSubject(mailBean.getSubject());mimeMessage.setText(mailBean.getContent());mailSender.send(mimeMessage);}/*** 发送邮件-附件邮件* @param boMailBean*/public boolean sendMailAttachment(MailBean mailBean) {try {MimeMessage mimeMessage =mailSender.createMimeMessage();MimeMessageHelper helper =new MimeMessageHelper(mimeMessage, true);helper.setFrom(mailProperties.getUsername());helper.setTo(boMailBean.getToAccount());helper.setSubject(mailBean.getSubject());helper.setText(mailBean.getContent(), true);// 增加附件名称和附件helper.addAttachment(MimeUtility.encodeWord(boMailBean.getAttachmentFileName(), "utf-8", "B"), mailBean.getAttachmentFile());mailSender.send(mimeMessage);return true;}catch (MessagingException e) {e.printStackTrace();return false;}}MailBean.java/*** @author chenzan* @version V1.0*/@Datapublic class MailBean {private Stringsubject;private String content;private String toAccount;private File attachmentFile;private String attachmentFileName;}4.发送String email = "XXX@";String content="测试内容";String subject = "测试主题";MailBean mailBean =new MailBean ();mailBean .setToAccount(email);boMailBean.setSubject(subject );boMailBean.setContent(content);boolean resultSend =mailUtil.sendMailAttachment(boMailBean);⼆、查看阿⾥云邮箱设置⽀持SMTP/POP3/IMAP功能,轻松通过客户端软件(outlook、foxmail等)收发邮件。
基于JavaMail的邮件系统的概要设计一邮件系统各功能概述1.1 JavaMail简介JavaMail API是Java EE的一部分,是Java SE的可选组件。
该组件提供了一个平台无关、协议独立的框架,预置了一些最常用的邮件传送协议的实现方法,通过一组API来模拟邮件系统。
提供Email的发送和接收服务。
它借鉴了IMAP、MAPI、CMC等消息系统API的设计,采用面向对象的思想将接2008年4月18日收到接口与实现相分离,支持存取方式、消息格式、消息传送协议不同的邮件消息系统,可以简便的为应用程序增加Email支持,广泛应用于构件邮件和消息应用系统JavaMail API封装了电子邮件功能中:邮件对象、发送、身份认证、接收等功能。
其核心类有:Session、Authenticator Address Message Transport、Store、Folder等。
其中Session是邮件操作的接口,用于建立了基本的邮件会话;Authenticator类提供访问邮件服务器所需的认证信息;Message描述基本的邮件消息,是收发邮件的操作单位;Transport是发送邮件时所用的协议,通常是SMTP;Store模拟了消息数据库及其内部存储消息的目录的访问协议;Folder用于描述消息数据库中的目录结构。
一个Session会有多个Trans—port,每个Store包含一系列的Folder和Message,每个Folder又包含一系列的Folder和Message。
借助这些类,就可以构建各种典型的邮件应用。
JavaMail的最新实现是1.4版本,可以支持POP3、IMAP4、SMTP协议。
由于JavaMail还需要JavaBeans Activation Framework(JAF)框架的支持,1.2 设计目标公用邮箱是和外单位交互的主要渠道,用户获取和提交一些重要数据和文件,也是与本单位其它部门进行业务的信息交换的重要渠道。
1.邮件1.1 邮件组成部分如果是新邮件就获取,并解析它;邮件是由邮件头和邮件体组成,在邮件头中主要包含了收件人、发件人、主题等等基础信息。
而邮件体中就包括了邮件的正文和附件等内容信息。
下图就是pop3协议下,邮件的大致内容。
1.2 发送邮件(带附件、正文带图片)QQ邮箱为例:需要QQ账号和QQ登录第三方客户端时,密码框的“授权码”(相当于密码)授权码如下获取:代码如下:public class JavaMailboxAttachment {private MimeMessage message;private Session session;private String mailHost = "";private String mailAuth = "";private String mailPort = "";private String sender_username = "";private String sender_password = "";//定义一个Properties 用于存放信息private Properties properties = new Properties();//-------------------------------发信箱---------------------------------------------public JavaMailboxAttachment(String email_type) {try {properties.put("mail.smtp.host",""); //发送邮件服务器//端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587properties.put("mail.smtp.port", "587"); //发送邮件端口号properties.put("mail.smtp.auth", "true");// 此处填写你的账号properties.put("er", "xxxxxxxxx@");// 此处的密码就是前面说的16位STMP授权码properties.put("mail.password", "xxxxxxxxxxxxxxxx");this.mailHost = properties.getProperty("mail.smtp.host");this.mailAuth = properties.getProperty("mail.smtp.auth");this.mailPort = properties.getProperty("mail.smtp.port");this.sender_username = properties.getProperty("er");this.sender_password = properties.getProperty("mail.password");} catch (Exception e) {e.printStackTrace();}// 构建授权信息,用于进行SMTP进行身份验证Authenticator authenticator = new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {// 用户名、密码String userName = properties.getProperty("er");String password = properties.getProperty("mail.password");return new PasswordAuthentication(userName, password);}};session = Session.getInstance(properties,authenticator); //用户验证message = new MimeMessage(session); //将验证成功的session信息,创建一个message 对象。
《收发电子邮件》学习任务单一、学习目标1、了解电子邮件的基本概念和工作原理。
2、掌握常用电子邮件客户端(如 Outlook、Foxmail 等)的设置和使用方法。
3、学会撰写规范、清晰、有效的电子邮件。
4、掌握接收和查看电子邮件的技巧,包括处理附件和邮件分类。
5、了解电子邮件的安全注意事项,如防范垃圾邮件、网络钓鱼等。
二、学习内容1、电子邮件基础知识(1)电子邮件的定义和特点电子邮件是通过网络传递的电子信件,具有快速、便捷、低成本等特点。
(2)电子邮件的工作原理简单介绍邮件的发送、传输和接收过程,包括服务器的作用。
2、电子邮件客户端的设置(1)选择适合自己的电子邮件客户端,如 Outlook、Foxmail 等。
(2)设置邮件账户,包括输入邮箱地址、密码、服务器信息等。
(3)配置邮件客户端的基本选项,如邮件保存位置、邮件提醒方式等。
3、撰写电子邮件(1)邮件的格式包括收件人、主题、正文、附件等部分的规范。
(2)邮件主题的撰写主题要简洁明了,能够准确反映邮件的主要内容。
(3)邮件正文的撰写语言得体、表达清晰,注意分段和标点使用。
(4)附件的添加和处理了解如何添加附件,以及注意附件的大小和格式限制。
4、接收和查看电子邮件(1)接收邮件的方式和时间设置(2)查看邮件的方法和操作(3)处理附件的步骤和注意事项(4)邮件的分类和归档5、电子邮件的安全(1)识别垃圾邮件和防范方法(2)避免网络钓鱼邮件的技巧(3)保护个人邮件信息的安全措施三、学习资源1、在线教程和视频推荐一些知名的在线学习平台上关于收发电子邮件的教程和视频。
2、电子邮件客户端的官方帮助文档提供常用电子邮件客户端的官方网站链接,方便查找详细的帮助文档。
四、学习活动1、实际操作练习在自己的电脑上安装电子邮件客户端,并进行账户设置和邮件收发的练习。
2、案例分析分析一些成功和失败的电子邮件案例,学习优秀的邮件撰写和处理方式,避免常见错误。
3、小组讨论与同学或同事组成小组,讨论在收发电子邮件过程中遇到的问题和解决方案。
基于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进行属性设置,确定。
这样便可以正确设置完邮件服务器的属性。
此系统对上述设置的信息具有存储功能,在这里,我们采用属性文件的形式存储SMT P 和POP3邮件服务器属性设置。
javaMail邮件接收解析内容及附件及删除邮件使⽤javaMail获取邮件内容。
⼯具类可直接使⽤。
package com.szy.project.utils;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Properties;import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Flags;import javax.mail.Folder;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Part;import javax.mail.Session;import javax.mail.Store;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;/*** 邮件接受测试**//*** 使⽤POP3协议接收邮件*/public class POP3ReceiveMailTest {public static void main(String[] args) throws Exception {resceive();}/*** 接收邮件*/public static void resceive() throws Exception { /** * 因为现在使⽤的是163邮箱⽽163的 pop地址是 端⼝是 110 * ⽐如使⽤好未来企业邮箱就需要换成好未来邮箱的 pop服务器地址 和端⼝110 */ String duankou = "110"; // 端⼝号 String servicePath = ""; // 服务器地址// 准备连接服务器的会话信息Properties props = new Properties();props.setProperty("mail.store.protocol", "pop3"); // 使⽤pop3协议props.setProperty("mail.pop3.port", duankou); // 端⼝props.setProperty("mail.pop3.host", servicePath); // pop3服务器// 创建Session实例对象Session session = Session.getInstance(props);Store store = session.getStore("pop3");store.connect("157********@", "***********"); //163邮箱程序登录属于第三⽅登录所以这⾥的密码是163给的授权密码⽽并⾮普通的登录密码// 获得收件箱Folder folder = store.getFolder("INBOX");/* Folder.READ_ONLY:只读权限* Folder.READ_WRITE:可读可写(可以修改邮件的状态)*/folder.open(Folder.READ_WRITE); //打开收件箱// 由于POP3协议⽆法获知邮件的状态,所以getUnreadMessageCount得到的是收件箱的邮件总数System.out.println("未读邮件数: " + folder.getUnreadMessageCount());// 由于POP3协议⽆法获知邮件的状态,所以下⾯得到的结果始终都是为0System.out.println("删除邮件数: " + folder.getDeletedMessageCount());System.out.println("新邮件: " + folder.getNewMessageCount());// 获得收件箱中的邮件总数System.out.println("邮件总数: " + folder.getMessageCount());// 得到收件箱中的所有邮件,并解析Message[] messages = folder.getMessages();parseMessage(messages);//得到收件箱中的所有邮件并且删除邮件deleteMessage(messages);//释放资源folder.close(true);store.close();}/*** 解析邮件* @param messages 要解析的邮件列表*/public static void parseMessage(Message ...messages) throws MessagingException, IOException {if (messages == null || messages.length < 1)throw new MessagingException("未找到要解析的邮件!");// 解析所有邮件for (int i = 0, count = messages.length; i < count; i++) {MimeMessage msg = (MimeMessage) messages[i];System.out.println("------------------解析第" + msg.getMessageNumber() + "封邮件-------------------- ");System.out.println("主题: " + getSubject(msg));System.out.println("发件⼈: " + getFrom(msg));System.out.println("收件⼈:" + getReceiveAddress(msg, null));System.out.println("发送时间:" + getSentDate(msg, null));System.out.println("是否已读:" + isSeen(msg));System.out.println("邮件优先级:" + getPriority(msg));System.out.println("是否需要回执:" + isReplySign(msg));System.out.println("邮件⼤⼩:" + msg.getSize() * 1024 + "kb");boolean isContainerAttachment = isContainAttachment(msg);System.out.println("是否包含附件:" + isContainerAttachment);if (isContainerAttachment) {saveAttachment(msg, "f:\\mailTest\\"+msg.getSubject() + "_"+i+"_"); //保存附件}StringBuffer content = new StringBuffer(30);getMailTextContent(msg, content);System.out.println("邮件正⽂:" + (content.length() > 100 ? content.substring(0,100) + "..." : content)); System.out.println("------------------第" + msg.getMessageNumber() + "封邮件解析结束-------------------- "); System.out.println();}}/*** 解析邮件* @param messages 要解析的邮件列表*/public static void deleteMessage(Message ...messages) throws MessagingException, IOException {if (messages == null || messages.length < 1)throw new MessagingException("未找到要解析的邮件!");// 解析所有邮件for (int i = 0, count = messages.length; i < count; i++) {/*** 邮件删除*/Message message = messages[i];String subject = message.getSubject();// set the DELETE flag to truemessage.setFlag(Flags.Flag.DELETED, true);System.out.println("Marked DELETE for message: " + subject);}}/*** 获得邮件主题* @param msg 邮件内容* @return 解码后的邮件主题*/public static String getSubject(MimeMessage msg) throws UnsupportedEncodingException, MessagingException { return MimeUtility.decodeText(msg.getSubject());}/*** 获得邮件发件⼈* @param msg 邮件内容* @return 姓名 <Email地址>* @throws MessagingException* @throws UnsupportedEncodingException*/public static String getFrom(MimeMessage msg) throws MessagingException, UnsupportedEncodingException {String from = "";Address[] froms = msg.getFrom();if (froms.length < 1)throw new MessagingException("没有发件⼈!");InternetAddress address = (InternetAddress) froms[0];String person = address.getPersonal();if (person != null) {person = MimeUtility.decodeText(person) + "";} else {person = "";}from = person + "<" + address.getAddress() + ">";return from;}/*** 根据收件⼈类型,获取邮件收件⼈、抄送和密送地址。
利⽤JavaGUI和javamail实现的email客户端摘要本系统是⽤ java 语⾔实现的⼀个 Email客户端,主要⽤到 java GUI 图形界⾯设计和 java mail ⼯具包,它适⽤于所有⽤户,⽆管理员设置,可以实现⽹络邮箱的邮件发送和邮件收取的基本功能,还具有通讯录的存储功能,针对⽤户的需求,本Email 客户端具有以下两⼤模块:1.基本设置模块;此模块主要包括⽤户设置和邮箱设置两⼤内容:1.1 ⽤户设置:主要设置⽤户的⼀些基本信息,如⽤户名,⽤户密码等设置1.2 邮箱设置:主要设置邮箱服务器,SMTP,POP3等2. Email功能模块;此模块根据⼤众⽤户的需求划分了以下三个部分:2.1收取邮件功能;2.2发送邮件功能;2.3通讯录功能;该系统的开发过程为:1.Email客户端的需求分析;2.Email客户端的系统分析;3.Email客户端的功能模块划分划分;4.Email客户端的数据库设计;5.Email客户端的界⾯设计;6.Email客户端的功能模块设计及代码实现关键字:java,java GUI,java mailAbstractThis email client system is developed in java language using java GUI and java mail tools .It can be used by any users who want to use it . The system is not including manager settings and it can finish the function of sending and accepting mails in web mail system, it can store user information a function like a address book in the web. The systems need to achieve the overall function to run two parts, as follows1. The basic settingsTwo parts are followed:1.1 Maintenance System Administrators basic information;1.2 Student response functions;2. Email functionsThree function will be available2.1 Sending mails2.2 Receiving mails2.3 Address bookThe system development process :1. Email client needs analysis;2. Email client system analysis;3. Email client function modules partition;4. Email client design;5. Email client interface design;6. Email client functional design and code modules to achieveKey word:java , java GUI ,java mail⽬录前⾔ (4)第1章系统概述及系统分析-------------------------------------------- 51.1系统概述 (5)1.1.1基本设置模块--------------------------------------------------- 51.1.2 Email功能模块------------------------------------------------- 5 1.2 需求分析 (5) 1.3 可⾏性分析 (5)1.3.1技术可⾏性分析------------------------------------------------- 51.3.2环境可⾏性分析------------------------------------------------- 61.3.3经济可⾏性分析------------------------------------------------- 6第2章系统开发基本介绍---------------------------------------------- 72.1 选题背景与⽬的--------------------------------------------------- 72 .2 系统开发⼯具---------------------------------------------------- 72 .3 系统开发环境---------------------------------------------------- 72 .4开发技术概述---------------------------------------------------- 72 .4.1 J2EE概述----------------------------------------------------- 72 .4.2 Java GUI ------------------------------------------------------ 82 .4.3 Java mail ----------------------------------------------------- 9第3章系统总体设计------------------------------------------------- 103 .1 系统功能模块划分----------------------------------------------- 103 .2系统具体功能模块基本介绍--------------------------------------- 103 .2.1 发件箱------------------------------------------------------- 103 .2.2 收件箱------------------------------------------------------- 113 .2.3 通讯录------------------------------------------------------- 11第4章系统详细设计及系统实现--------------------------------------- 134 .1 章节内容总体介绍----------------------------------------------- 134 .2各模块功能详细设计--------------------------------------------- 134 .2.1 发送邮件功能的实现------------------------------------------- 134 .2.1.1 发送普通邮件功能------------------------------------------- 134 .2.1.2 邮件附件的功能实现----------------------------------------- 194 .2.2 收取邮件功能的实现------------------------------------------- 204 .2.3 通讯录功能的实现--------------------------------------------- 284 .2.4其他功能----------------------------------------------------- 314 .2.4.1 其他界⾯实现与通讯录的连接功能----------------------------- 314 .2.4.2 邮件未存储对⽤户提⽰功能----------------------------------- 314 .2.4.3 复制、删除邮件功能----------------------------------------- 324 .2.4.4 ⽤户信息设置功能------------------------------------------- 34结束语-------------------------------------------------------------- 36谢辞 (37)参考⽂献 (37)前⾔邮件系统是⼀套单独的系统,要有⾃⼰的服务器,在邮件系统中可以设多个域,每个域中可以设多个⽤户,⽐如说我买了anymacro 或快客的邮件系统,可以进⾏多项设置.它的数据是放在⾃⼰的服务器上.随着信息技术的提⾼,⽹络的普及于发展,越来越多的⽹络⼯具随之产⽣出来,⽹络邮箱就是其中之⼀,它可以通过⽹络来实现⼈们之间的通信,可以给⼈们的⼯作带来极⼤的⽅便,同时也缩短了⼈与⼈之间的距离,使⼈们在通信上需要花费的时间更短。
《收发电子邮件》学习任务单一、学习目标1、了解电子邮件的基本概念和工作原理。
2、掌握电子邮箱的注册和设置方法。
3、熟练掌握发送和接收电子邮件的操作流程。
4、学会管理电子邮件,包括分类、标记、删除等。
5、能够正确处理电子邮件中的附件。
6、培养良好的电子邮件使用习惯和礼仪。
二、学习资源1、在线教程:推荐几个知名的在线学习平台,如网易云课堂、腾讯课堂等,上面有关于收发电子邮件的详细教程。
2、操作手册:提供常见电子邮箱服务提供商(如Gmail、Outlook、QQ 邮箱等)的操作手册链接,方便学习者查阅。
3、视频演示:在相关视频网站上搜索收发电子邮件的操作演示视频,直观地学习具体步骤。
三、学习方法1、自主学习:通过阅读在线教程和操作手册,初步了解电子邮件的相关知识和操作方法。
2、实践操作:注册一个电子邮箱,并进行发送和接收邮件的实际操作,加深对知识的理解和掌握。
3、小组讨论:与同学或同事组成学习小组,交流在学习和使用电子邮件过程中遇到的问题和经验,共同提高。
4、案例分析:分析一些实际的电子邮件案例,学习如何根据不同的情况进行有效的邮件沟通。
四、学习过程1、电子邮件基础知识什么是电子邮件电子邮件的优点和缺点电子邮件的工作原理2、电子邮箱的注册与设置选择电子邮箱服务提供商注册电子邮箱的步骤邮箱的基本设置(如密码修改、个人信息填写等)3、发送电子邮件填写收件人地址填写邮件主题编写邮件正文添加附件设置邮件优先级发送邮件4、接收电子邮件登录电子邮箱查看收件箱阅读邮件内容下载附件5、电子邮件的管理邮件分类邮件标记(如重要、已读、未读等)邮件删除邮件搜索6、电子邮件使用礼仪邮件格式规范语言表达得体避免发送垃圾邮件及时回复邮件五、学习评估1、在线测试:完成一套关于电子邮件知识和操作的在线测试题,检验学习成果。
2、实际操作考核:在规定时间内完成一系列电子邮件的发送、接收和管理任务,评估操作熟练程度。
3、案例分析报告:提交一份对给定电子邮件案例的分析报告,评价邮件沟通的有效性和礼仪表现。
毕业设计(论文)( 20 届)论文(设计)题目基于Javamail的邮件收发系统作者二级学院、专业班级指导教师(职称)论文字数论文完成时间20年月日基于JavaMail的邮件收发系统摘要电子邮件在当今社会中扮演了一个很重要的角色。
越来越多的人在使用它。
而且用它的人数势必会继续增加。
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。
本系统利用SMTP协议和POP协议从底层进行开发,利用JavaMail API为收发邮件提供与协议无关的访问。
SMTP(简单邮件传输协议)是专门用来发送邮件的。
POP (邮局协议)是专门用于接收邮件的。
JavaMail API是一种可选的、能用于读取、编写和发送电子消息的标准扩展包。
本文主要可分为四个部分。
第一部分介绍了Javamail邮件系统的意义和现状。
第二部分具体介绍了几种相关协议和Javamail API。
第三部分主要介绍了系统的开发工具JA V A语言、Eclipse及其安装过程与配置方法。
第四部分详细阐述了Javamail邮件收发系统的实现过程。
关键词:SMTP,POP,JA V AMAIL,邮件收发MAIL SYSTEM BASED ON JAVAMAILABSTRACTE-Mail play a very important role in modern times. More and more people are using it, and the number of it will larger and larger. This paper introduced the javamail system's development background, analyzed and compared some existing maturity Email system at home and abroad , summarized their advantages and disadvantages, studied deeply with the javamail technology , proposed and designed out the mail system based on javamail. This system used POP protocol and SMTP protocol to develop from the bottom, used JavaMail API to provide the visit which has nothing to do with the agreement for send and receive email. SMTP (Simple Mail Transfer Protocol) is designed to send a message. POP (Post Office Protocol) is designed to receive mail. JavaMail API is an standard expansion package which is optional, can be used to read, write and send electronic messages.This paper can be divided into four parts. The first part introduced javamail email system's significance and status. The second part introduced several related agreements and JavaMail API. The third part mainly introduced system's development tools JA V A language , Eclipse and their installation process and configuration method. The fourth part detailed javamail email system's realization process.Keywords:SMTP, POP, JA V AMAIL, Email to send and receive目录第一章绪论 (1)1.1电子邮件介绍 (1)1.2研究意义 (1)1.3研究现状 (3)第二章相关邮件协议和JavaMail API (5)2.1相关邮件协议 (5)2.2JavaMail API (6)2.2.1 JavaMail API简介 (6)2.2.2 JavaMail API核心类 (6)2.3.3 JavaMail API的应用 (8)第三章应用系统开发工具 (10)3.1Java开发语言简介 (11)3.2开发工具Eclipse (12)3.3开发软件的安装 (12)3.3.1 JA V A环境的安装与配置 (12)3.3.2 Eclipse的安装 (14)3.3.3 javamail的安装 (15)第四章JavaMail系统的实现 (16)4.1环境配置与界面搭建 (16)4.2设置邮件服务器参数的实现 (16)4.3创建与发送邮件功能的实现 (17)4.3.1 装载邮件服务器属性, 并与其建立连接 (17)4.3.2 构建邮件 (18)4.3.3 创建Transport对象发送邮件 (19)4.4接收邮件功能的实现 (20)4.4.1 获取服务器信息 (20)4.4.2 建立通信连接 (20)4.4.3显示邮件 (20)4.5删除邮件功能的实现 (22)第五章结语 (23)参考文献 (24)致谢 (25)第一章绪论本文是一项基于JavaMail的邮件系统的综合性研究,使用Sun公司提供的JavaMail API实现电子邮件的发送、电子邮件的接收等等功能。
Java实现⽹易企业邮箱发送邮件最近项⽬需要⽤⽹易企业邮箱发送邮件,特意来将实现过程记录⼀下:maven导⼊jar包1 <!-- javax.mai 核⼼包 -->2 <dependency>3 <groupId>javax.activation</groupId>4 <artifactId>activation</artifactId>5 <version>1.1</version>6 </dependency>7 <dependency>8 <groupId>javax.mail</groupId>9 <artifactId>mail</artifactId>10 <version>1.4.5</version>11 </dependency>java 使⽤ javax.mail 实现企业邮箱邮件发送1 import java.util.Properties;2 import javax.mail.internet.InternetAddress;3 import javax.mail.internet.MimeMessage;4 import javax.mail.internet.MimeUtility;5 import org.apache.log4j.Logger;6 import org.springframework.mail.javamail.JavaMailSenderImpl;7 import org.springframework.mail.javamail.MimeMessageHelper;8 import com.sun.mail.util.MailSSLSocketFactory;910public class SendMailSmtp {11private static Logger log = Logger.getLogger(SendTemplateSMS.class);1219public static void sendHtmlMail() {20try{21 String from = "邮箱账号名";//发件⼈昵称展⽰ *22 String[] to ={"接收邮箱1","接收邮箱2"};//接收邮箱23 String subject = "邮件主题";//邮件主题 *24 String text = "邮件内容";25 String host = "";//163企业邮箱smtp *26 String username = "发件的企业邮箱";//企业邮箱 *27 String password= "发件的企业邮箱的授权码";//企业邮箱密码 *2829//设置服务器验证信息30 Properties prop = new Properties();31 prop.setProperty("mail.smtp.auth", "true");32 prop.setProperty("mail.smtp.timeout", "994"); // 加密端⼝(ssl) 可通过 https:///help/client-profile.html 进⾏查询3334 MailSSLSocketFactory sf = new MailSSLSocketFactory();// SSL加密35 sf.setTrustAllHosts(true); // 设置信任所有的主机36 prop.put("mail.smtp.ssl.enable", "true");37 prop.put("mail.smtp.ssl.socketFactory", sf);3839//设置邮件内容40 JavaMailSenderImpl javaMailSend = new JavaMailSenderImpl();41 MimeMessage message = javaMailSend.createMimeMessage();42 MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "utf-8");43 String nick = MimeUtility.encodeText(from);//设置昵称44 messageHelper.setFrom(new InternetAddress(nick + " <"+username+">"));// 邮件发送者45 messageHelper.setTo(to);46 messageHelper.setSubject(subject);47 messageHelper.setText(text, true);4849//设置邮件服务器登录信息50 javaMailSend.setHost(host);51 javaMailSend.setUsername(username);52 javaMailSend.setPassword(password);53 javaMailSend.setJavaMailProperties(prop);54 ("maillText:" + text);55 javaMailSend.send(message);56 } catch (Exception e) {57// TODO Auto-generated catch block58 log.error(e);59 e.printStackTrace();60 }61 }6263 }注意:1.邮箱密码是开通pop3/smtp服务时所给的授权码,⽽不是你注册邮箱时的真实密码2.检查⾃⼰邮箱是否开通pop3/smtp服务。
第25卷第3期 计算机应用与软件Vo l 25No .32008年3月 Co m puter Applicati o ns and Soft w are M ar .2008使用JavaM ail/J AF 开发中文邮件系统的关键技术研究袁梅冷 聂 哲(深圳职业技术学院软件工程系 广东深圳518055)收稿日期:2006-04-13。
袁梅冷,讲师,主研领域:J 2EE 技术,电子商务等。
摘 要 Java M ail 提供了对邮件收发核心流程很好的支持,但在开发实用邮件系统过程中,必然会遇到Java M a il 本身并不支持的如嵌套邮件内容解释、M I M E 类型数据处理框架结构、中文乱码等技术难题。
在全面研究基于Java 技术的邮件系统开发的基础上,给出了通用的解决方案和实现要点。
关键词Java M ail J AF 中文乱码 邮件系统RES EARCH ON THE KEY TEC HNOLOG I ES IN THE DEVELOPM ENTOF CH INES E E MA IL S YSTEM BASED ON J AVAMA IL AND J AFYuanM eileng N ie Zhe(D e part m ent of S oft w are Engineeri ng,Colle g e of Sh e nzh e n P ol y t echnic ,Sh e nzhen 518055,Guangdong,China )Abstrac t Java M a il facilita tes the deve l op m en t o f E m ail Sy stem .H ow eve r ,during the develop m ent o f practi ca l E m a il syste m,so m e proble m s such as t he pars i ng o f nesti ng e m a il content ,t he process fra m ework o f data o fM I M E type ,and the unreadab le Ch i nese cha rs can not be supported by Java M a i.l G enera l so l utions to t hese prob l em s are presented ,and the key techno l og i es are prov i ded .K eywordsJava M ail JavaBeans A cti vation Fra m ewo rk(J A F) U nreadable ch i nese cha rs E m ail syste m0 引 言Java 语言作为一种强大的网络编程语言,为支持邮件系统的开发推出了Java M ail 开发包,极大地简化了基于Java 技术的邮件系统的开发。
信息科学与工程学院
09 届本科生毕业设计(论文)任务书
学院信息科学与工程
学院
专业
计算机科学与技术
(师范)
班级
学号学生姓名指导教师
一、论文题目
基于Javamail的邮件收发系统
二、内容和要求
1.总体目标及性能(参数)要求
(1)系统功能基本完善。
(2)系统具有良好的用户界面。
(3)系统具有较好的人机交互性、易于使用。
(4)系统可靠、稳定,具有一定的应用价值。
2.研究内容及拟采用的技术路线
●研究内容:
(1)邮件服务器的工作原理。
(2)DNS服务器的工作原理。
(3)SMTP、POP3、MIME协议。
(4)设计并实现基于Javamail的邮件收发系统,要求系统具有邮件接收、发送等基本功能。
●采用的技术路线:
(1)开发工具采用Java+JavaMail API。
(2)数据库采用MySQL或SQL Server。
3.参考文献(10篇以上)
[1] Java邮件开发详解。
张孝祥。
电子工业出版社,2007。
[2] Java高级程序设计。
王路群主编。
中国水利水电出版社, 2006 。
[3] Java课程设计。
黄明, 梁旭, 周绍斌编著。
电子工业出版社, 2006。
[4] Java开发与应用教程。
王吴迪, 赵枫朝等编著。
电子工业出版社, 2006。
[5] Java程序设计大学教程。
刘艺等编著。
机械工业出版社, 2006。
[6] Java数据库高级编程宝典。
陈天河编著。
电子工业出版社, 2005。
[7] Java程序设计与应用开发。
於东军等编著。
清华大学出版社, 2005。
[8] Java语言程序设计实训。
赵海廷主编。
武汉大学出版社, 2005。
[9] Java program design。
Cohoon, James P.,Davidson, Jack W。
McGraw-Hill Higher Education, 2004。
[10] Thinking in Java。
Eckel, Bruce。
Prentice Hall, c2000。
[11] Learning Java。
Niemeyer, Patrick.,Knudsen, Jonathan。
O'Reilly, 2000。
三、起止日期及进度安排(包括论文各阶段的内容和时间安排的要求)
起止日期:2008 年8 月23 日至2009 年 5 月9 日进度安排:
指导教师(签名)2008 年9 月15 日四、教研室(系)审查意见:
教研室(系)主任(签名)年月日
学院分管院长(签名)年月日。