java 发送电子邮件(从 excel读取地址,设置发送间歇)
java发邮件方法
java发邮件方法Java是一种功能强大的编程语言,它提供了多种方法来实现发送邮件的功能。
本文将介绍两种常用的Java发邮件的方法,分别是使用JavaMail API和使用Spring Framework的JavaMail库。
JavaMail API是一个用于发送和接收电子邮件的标准API,它是Java平台的一部分。
使用JavaMail API,我们可以在Java程序中轻松地发送邮件。
下面是使用JavaMail API发送邮件的步骤:1. 添加依赖:首先,我们需要在我们的Java项目中添加JavaMail API的依赖。
可以通过Maven或Gradle等构建工具,将以下依赖添加到项目的构建文件中:```xml<dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.2</version></dependency>```2. 创建会话对象:接下来,我们需要创建一个会话对象,用于与邮件服务器进行通信。
可以使用javax.mail.Session类的getInstance()方法来创建会话对象,该方法接受一个Properties对象作为参数,用于指定邮件服务器的配置信息,如SMTP 服务器的地址、端口号等。
```javaProperties properties = new Properties();properties.put("mail.smtp.host", "");properties.put("mail.smtp.port", "25");Session session = Session.getInstance(properties);```3. 创建邮件消息:然后,我们需要创建一个邮件消息对象,用于设置邮件的各种属性,如发件人、收件人、主题、内容等。
使用java实现简单的邮件发送
使⽤java实现简单的邮件发送1、邮件发送的原理图2、jar包⽀持activation-1.1.1.jarmail-1.4.7.jar3、qq邮箱需要获取授权4、简单⽂本邮件的实现代码编写理论步骤:1.创建session对象2.创建Transport对象3.使⽤邮箱的⽤户名和授权码连上邮件服务器4.创建⼀个Message对象(需要传递session)message需要指明发件⼈、收件⼈以及⽂件内容5.发送邮件6.关闭连接5、代码如下package com.wxt;import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties;public class MailDemo01 {public static void main(String[] args) throws Exception {Properties prop=new Properties();prop.setProperty("mail.host","");///设置QQ邮件服务器prop.setProperty("mail.transport.protocol","smtp");///邮件发送协议prop.setProperty("mail.smtp.auth","true");//需要验证⽤户密码//QQ邮箱需要设置SSL加密MailSSLSocketFactory sf=new MailSSLSocketFactory();sf.setTrustAllHosts(true);prop.put("mail.smtp.ssl.enable","true");prop.put("mail.smtp.ssl.socketFactory",sf);//使⽤javaMail发送邮件的5个步骤//1.创建定义整个应⽤程序所需要的环境信息的session对象Session session=Session.getDefaultInstance(prop, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("1043001092@","rskbkghnaooybcgc");}});//开启session的debug模式,这样可以查看到程序发送Email的运⾏状态session.setDebug(true);//2.通过session得到transport对象Transport ts=session.getTransport();//3.使⽤邮箱的⽤户名和授权码连上邮件服务器ts.connect("","1043001092@","rskbkghnaooybcgc");//4.创建邮件:写⽂件//注意需要传递sessionMimeMessage message=new MimeMessage(session);//指明邮件的发件⼈message.setFrom(new InternetAddress("1043001092@"));//指明邮件的收件⼈message.setRecipient(Message.RecipientType.TO,new InternetAddress("1043001092@"));//邮件标题message.setSubject("通过java发送邮件");//邮件的⽂本内容message.setContent("这是第⼀个java发送的邮件","text/html;charset=UTF-8");//5.发送邮件ts.sendMessage(message,message.getAllRecipients());//6.关闭连接ts.close();}}。
java解析excel测试用例发自定义邮件
在开始撰写文章之前,我需要先对您提供的主题进行全面评估。
我将深入研究Java解析Excel测试用例并从中获取有关发自定义邮件的主题。
通过逐步探讨,我将提供一篇深度和广度兼具的中文文章,以期为您提供具有高质量和价值的内容。
1. Java解析Excel测试用例在Java编程中,解析Excel文件是一项常见的任务。
通过使用特定的库或API,我们可以轻松地读取Excel文件中的数据,并对其进行分析和处理。
在测试领域中,解析Excel测试用例是至关重要的,因为它们通常包含了大量的测试数据和预期结果。
1.1. 使用Apache POI库进行Excel解析Apache POI是一个流行的Java库,用于操作各种Office文档,包括Excel。
通过使用POI库,我们可以打开Excel文件,读取单元格中的数据,并将其转换为Java对象进行进一步处理。
这种灵活性使得我们能够轻松地解析测试用例中的各种数据和参数。
1.2. 解析Excel中的测试数据和预期结果测试用例通常包括了输入数据、预期结果以及其他相关信息。
通过Java解析Excel文件,我们可以将这些数据提取出来,并在测试过程中使用。
这有助于提高测试的自动化程度,并且能够更有效地管理测试数据。
2. 发自定义邮件一旦我们成功解析了测试用例,并执行了相关测试,接下来的一个关键步骤就是将测试结果以邮件形式发送给相关人员。
在实际工作中,我们可能会遇到需要自定义邮件内容和格式的情况。
2.1. 使用Java的邮件发送库Java提供了各种邮件发送库,比如JavaMail API和Spring Framework中的邮件模块。
通过这些库,我们可以轻松地连接到邮件服务器,并发送自定义的电流信箱。
这使得我们能够定制邮件内容,包括测试结果、错误信息以及其他相关内容。
2.2. 集成测试结果与邮件发送我们可以将测试结果与邮件发送集成在一起。
通过将测试结果转化为自定义邮件内容,我们可以及时地通知相关人员测试的结果,并在发生错误时提供详细的信息和故障排查建议。
Java发送邮件
详细资料 uYŠ |?
9. 10. 11.
public static String TEXT = "text/plain;charset=gb2312"; public static String HTML = "text/html;charset=gb2312";
d }"g,SZ[¢
12.
搜索
private String mailServerHost; private String mailServerPort = "25";
// •®NöSÑ• € v„W0W@ // •®Nöc¥e6€ v„W0W@
elena_java
wangwenzhi66
19. 20. 21. 22.
// v{陆邮件发送服务器的用户名和密码
private boolean validate = false;
// f/T&— ‰•Ž«Ný验证
/blog/852725 (1 of 12)2011-4-14 10:09:27
q
Windowsxpxl盘安装fedora11
96. 97.
q
Android‘Çu(PULL‰ãg•XMLe‡ 档
98. 99. 100. 101.
q
GWTbSSp
102. 103.
q
关于MPVj!_
104. 105. 106.
q
107. 108. 109.
q
Xðf ÿ ITeyee‡zàrH权属于作者,受 法律保护。没有作者书面许可不得转 载。若作者同意转载,必须以超链接 形式标明文章原始出处和作者。 © 2003-2011 . All rights reserved. [ N¬ICP证110151S÷ ]
用Java代码发送邮件的方法
⽤Java代码发送邮件的⽅法 注册某个⽹站⼀般都需要邮箱激活: 注册后,该⽹站会给你填写的邮箱发送⼀条激活信息,点击对应的链接即可完成激活。
激活成功后,就可以正常登录该⽹站了。
⽽该业务就可以通过Java代码实现: 关于邮件激活这⼀块,⽼实说本来不打算专门花⼀晚上时间学习的。
毕竟这种类型的知识点需要⽤到的时候相对⽽⾔很少,就算遇到了通过⽹络也能解决。
后来我想了想,我能够通过⽹络查询到别⼈的教程,那为何不能让别⼈查询我的笔记呢? 所以还是花了⼀个晚上的世界来学习,同时也⽅便⾃⼰以后遇到该需求后查看。
⼀、Java发送邮箱 既然是发送邮箱,⾸先需要⼀个固定的发件邮箱地址,⽽这个邮箱要开通POP3服务。
我这边使⽤的是⽹易提供的邮箱,通过邮箱的设置可以开启该服务。
开启服务后,需要通过⼿机号验证;验证成功会获得⼀个授权码,这个需要记下来。
有了这个授权码之后,就可以通过Java代码发送邮箱了,发件⼈也就是该邮箱。
当然发送邮件的技术挺多的,我这边使⽤的是apache提供的commons-mail。
导⼊该依赖后就可以编写代码了。
①创建htmlEamil对象 apache-mail中是使⽤HtmlEmail这个类来操作邮件的。
②配置服务器参数 setHostName:设定服务器地址。
setAuthentication:翻译过来就是认证的意思,所以需要输⼊邮箱名和授权码。
③设置发件⼈和收件⼈ setCharset:设定编码格式为“gb2312”,国家制定的⼀套标准,gb即国标的拼⾳缩写。
setFrom:这个是设定发件⼈,也就是上述获取授权码的那个邮箱。
setaddTo:这个是设定收件⼈,也就是谁注册就是谁的邮箱,动态获取,我这边测试就先⽤我⾃⼰的另⼀个邮箱代替。
④设置邮件的主题和正⽂ setSubject:发给⽤户的邮件标题,⼀般都是“XXX⽹站激活邮件” setMsg:发送正⽂,⼀般都是“恭喜你,注册成功!请点击链接激活”,再附带⼀个链接。
java邮件发送(单人,多人,抄送,Excel附件)
java邮件发送(单⼈,多⼈,抄送,Excel附件) 直接上代码保存吧package com.westvalley.ceiec.page.report.sendmail;import weaver.email.EmailEncoder;import javax.mail.*;import javax.mail.internet.*;import javax.mail.util.ByteArrayDataSource;import javax.activation.*;import mons.logging.Log;import mons.logging.LogFactory;import ermodel.HSSFWorkbook;import crivia.db.i.DataSet;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.util.*;/**邮件发送⼯具类* @author whh*/public class Email {Log log = LogFactory.getLog(this.getClass());//发件⼈地址private String mail_from;public void setMail_from(String mailFrom) {mail_from = mailFrom;}public String getMail_from() {return mail_from;}//发件⼈密码private String password;public void setPassword(String password) {this.password = password;}public String getPassword() {return password;}//收件地址private String mail_to;public void setMail_to(String mailTo) {mail_to = mailTo;}public String getMail_to() {return mail_to;}//主题private String title;public void setTitle(String title) {this.title = title;}public String getTitle() {return title;}//内容private String message;public void setMessage(String message) {this.message = message;}public String getMessage() {return message;}//发件⼈邮件服务器如: 191.0.0.6private String send_server;public void setSend_server(String sendServer) {send_server = sendServer;}public String getSend_server() {return send_server;}/** 单个发送 setMail_to(String mailTo)* @return是否正确发送* @throws AddressException*/public boolean SendMail()throws AddressException{try{int n = this.mail_from.indexOf('@');int m = this.mail_from.length();//取邮件的服务器String server = this.mail_from.substring(n+1, m);//建⽴邮件会话Properties pro = new Properties();pro.put("mail.smtp.host", "smtp."+server);pro.put("mail.smtp.auth", "true");Session sess = Session.getInstance(pro);sess.setDebug(true);//新建⼀个消息对象MimeMessage message = new MimeMessage(sess);//设置发件⼈InternetAddress from_address = new InternetAddress(this.mail_from); message.setFrom(from_address);//设置收件⼈InternetAddress to_address = new InternetAddress(this.mail_to);message.setRecipient(Message.RecipientType.TO, to_address);//设置主题message.setSubject(title);//设置内容message.setContent(this.message, "text/html;charset=UTF-8");//设置发送时间message.setSentDate(new Date());//发送邮件message.saveChanges(); //保存邮件信息//设置发送的格式Transport transport = sess.getTransport("smtp");if(this.send_server == null){transport.connect("191.0.0.6", this.mail_from, password);}else{transport.connect(this.send_server, this.mail_from, password);}transport.sendMessage(message, message.getAllRecipients());transport.close();("向"+this.mail_to+"发送邮件成功");return true;}catch(Exception e){("发送邮件失败,原因可能是"+e.toString());return false;}}/**群发* @param addresses 地址list* @return* @throws AddressException*/public boolean SendMail(List<String> addresses) throws AddressException{ try{int n = this.mail_from.indexOf('@');int m = this.mail_from.length();//取邮件的服务器String server = this.mail_from.substring(n+1, m);//建⽴邮件会话Properties pro = new Properties();pro.put("mail.smtp.host", "smtp."+server);pro.put("mail.smtp.auth", "true");Session sess = Session.getInstance(pro);sess.setDebug(true);//新建⼀个消息对象MimeMessage message = new MimeMessage(sess);//设置发件⼈InternetAddress from_address = new InternetAddress(this.mail_from); message.setFrom(from_address);//设置收件⼈,多个final int num = addresses.size();InternetAddress to_address[] = new InternetAddress[num];for(int i=0; i<num; i++){to_address[i] = new InternetAddress(addresses.get(i));}message.setRecipients(Message.RecipientType.TO, to_address);//设置主题message.setSubject(title);//设置内容message.setContent(this.message, "text/html;charset=UTF-8");//设置发送时间message.setSentDate(new Date());//发送邮件message.saveChanges(); //保存邮件信息//设置发送的格式Transport transport = sess.getTransport("smtp");if(this.send_server == null){transport.connect("191.0.0.6", this.mail_from, password);}else{transport.connect(this.send_server, this.mail_from, password);}transport.sendMessage(message, message.getAllRecipients());transport.close();("发送邮件成功");return true;}catch(Exception e){("发送邮件失败,原因可能是"+e.getMessage());return false;}}/** 多⼈发送并抄送增加:2017-04-25 whh* @param addresses 收件邮箱(多个)* @param ccAddresses 抄送邮箱(多个)* @return* @throws AddressException*/public boolean SendMail(List<String> addresses, List<String> ccAddresses) throws AddressException{if(0==ccAddresses.size()){ //20170428 whhreturn SendMail(addresses);}try{int n = this.mail_from.indexOf('@');int m = this.mail_from.length();//取邮件的服务器String server = this.mail_from.substring(n+1, m);//建⽴邮件会话Properties pro = new Properties();pro.put("mail.smtp.host", "smtp."+server);pro.put("mail.smtp.auth", "true");Session sess = Session.getInstance(pro);sess.setDebug(true);//新建⼀个消息对象MimeMessage message = new MimeMessage(sess);//设置发件⼈InternetAddress from_address = new InternetAddress(this.mail_from);message.setFrom(from_address);//设置收件⼈,多个final int num = addresses.size();InternetAddress to_address[] = new InternetAddress[num];for(int i=0; i<num; i++){to_address[i] = new InternetAddress(addresses.get(i));}message.setRecipients(Message.RecipientType.TO, to_address);//设置抄送⼈final int ccSize = ccAddresses.size();if(ccSize > 0){InternetAddress cc_Address[] = new InternetAddress[ccSize];for(int i=0; i<ccSize; i++){cc_Address[i] = new InternetAddress(ccAddresses.get(i));}message.setRecipients(, cc_Address);}//设置主题message.setSubject(title);//设置内容message.setContent(this.message, "text/html;charset=UTF-8");//设置发送时间message.setSentDate(new Date());//发送邮件message.saveChanges(); //保存邮件信息//设置发送的格式Transport transport = sess.getTransport("smtp");if(this.send_server == null){transport.connect("191.0.0.6", this.mail_from, password);}else{transport.connect(this.send_server, this.mail_from, password);}transport.sendMessage(message, message.getAllRecipients());transport.close();("发送邮件成功");return true;}catch(Exception e){("发送邮件失败,原因可能是"+e.getMessage());return false;}}/** 多⼈发送并抄送增加:2019-06-14 whh* @param addresses 收件邮箱(多个)* @param ccAddresses 抄送邮箱(多个)* @param is 附件* @return* @throws AddressException*/public boolean SendMail(List<String> addresses, List<String> ccAddresses,HSSFWorkbook workBook,String workBookName) throwsAddressException{try{int n = this.mail_from.indexOf('@');int m = this.mail_from.length();//取邮件的服务器String server = this.mail_from.substring(n+1, m);//建⽴邮件会话Properties pro = new Properties();pro.put("mail.smtp.host", "smtp."+server);pro.put("mail.smtp.auth", "true");Session sess = Session.getInstance(pro);sess.setDebug(true);//新建⼀个消息对象MimeMessage message = new MimeMessage(sess);//设置发件⼈InternetAddress from_address = new InternetAddress(this.mail_from);message.setFrom(from_address);//设置收件⼈,多个final int num = addresses.size();InternetAddress to_address[] = new InternetAddress[num];for(int i=0; i<num; i++){to_address[i] = new InternetAddress(addresses.get(i));}message.setRecipients(Message.RecipientType.TO, to_address);//设置抄送⼈final int ccSize = ccAddresses.size();if(ccSize > 0){InternetAddress cc_Address[] = new InternetAddress[ccSize];for(int i=0; i<ccSize; i++){cc_Address[i] = new InternetAddress(ccAddresses.get(i));}message.setRecipients(, cc_Address);}//附件ByteArrayOutputStream baos = new ByteArrayOutputStream();workBook.write(baos);baos.flush();byte[] bt = baos.toByteArray();InputStream is = new ByteArrayInputStream(bt, 0, bt.length);baos.close();/*添加正⽂内容*/Multipart multipart = new MimeMultipart();BodyPart contentPart = new MimeBodyPart();// contentPart.setText(this.message);// contentPart.setHeader("Content-Type", "text/html;charset=UTF-8");contentPart.setContent(this.message, "text/html;charset=UTF-8");multipart.addBodyPart(contentPart);/*添加附件*/MimeBodyPart fileBody = new MimeBodyPart();DataSource source = new ByteArrayDataSource(is, "application/msexcel"); fileBody.setDataHandler(new DataHandler(source));// 中⽂乱码问题fileBody.setFileName(MimeUtility.encodeText(workBookName+".xls"));multipart.addBodyPart(fileBody);//设置主题message.setSubject(title);//设置内容message.setContent(multipart);//设置发送时间message.setSentDate(new Date());//发送邮件message.saveChanges(); //保存邮件信息//设置发送的格式Transport transport = sess.getTransport("smtp");if(this.send_server == null){transport.connect("191.0.0.6", this.mail_from, password);}else{transport.connect(this.send_server, this.mail_from, password);}transport.sendMessage(message, message.getAllRecipients());transport.close();("发送邮件成功");return true;}catch(Exception e){("发送邮件失败,原因可能是"+e.getMessage());return false;}}/**邮箱初始化,发件⼈邮箱、密码及服务器信息的获取* @return正确获取时返回Email对象,否则为null*/public static Email intiEmail(){// Log log = LogFactory.getLog(this.getClass());Email email = new Email();//获取系统的邮箱信息DataSet data = SQL.select(SQL.sql_Array(" select defmailpassword" +",defmailserver,defmailfrom from SystemSet "));if(data.next()){//发件⼈邮箱地址email.setMail_from(data.get("defmailfrom"));//获取并解析邮箱密码email.setPassword(EmailEncoder.DecoderPassword(data.get("defmailpassword")));// ("Password:"+EmailEncoder.DecoderPassword(data.get("defmailpassword"))); //服务器信息email.setSend_server(data.get("defmailserver"));}if(email.getMail_from().equals("")||email.getPassword().equals("")||email.getSend_server().equals("")){// ("发送⼈邮箱错误");// ("From:"+email.getMail_from()+"Password:"+// email.getPassword()+"Server:"+email.getSend_server());return null;}return email;}}。
java定时邮件发送
在spring利用javamail,quartz定时发送邮件博客分类:java mailquartzSpringBeanWebXML在web开发中,我们经常需要定时完成一些功能。
比如定义统计报表啊,统计用户排名等等。
利用spring就可以轻松地做到这些任务。
下面我就以定时发送邮件来来展示如何利用spring定时发送邮件,以及spring对JavaMail的简化。
MailService.java类package com.open.quartz;import org.springframework.mail.MailException;import org.springframework.mail.MailSender;import org.springframework.mail.SimpleMailMessage;public class MailService {private MailSender mailSender;private SimpleMailMessage mailMessage;//邮件模板public void sendMail() {System.out.println("-----------发送邮件!---------");SimpleMailMessage msg=new SimpleMailMessage(this.mailMessage);msg.setText("this is a test mail");try {mailSender.send(msg);} catch (MailException e) {e.printStackTrace();}System.out.println("-----------发送成功!---------");}//省略set,get方法}在web.xml里添加以下代码<listener><listener-class>org.springframework.web.context.ContextLoaderListener</li stener-class></listener>在WEB-INF目录下添加applicationContext.xml文件<beans><bean id="mailSender"class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value=""/><!-- 有些邮件服务器发送邮件需要认证,所以必须提供帐号 --><property name="username" value="填入用户名"/><property name="password" value="填入密码"/><property name="javaMailProperties"><props><prop key="mail.smtp.auth">true</prop></props></property></bean><!--一个邮件模板--><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="to" value="asm_c_yuan@"/><property name="from" value="asm_c_yuan@"/><property name="subject" value="test"/></bean><bean id="ms" class="com.open.quartz.MailService" autowire="byName"/><bean id="reportJob"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFac toryBean"><property name="targetObject" ref="ms"/><property name="targetMethod" value="sendMail"/></bean><!--一个简单的调度器--><bean id="simpleTrigger"class="org.springframework.scheduling.quartz.SimpleTriggerBean"><property name="jobDetail" ref="reportJob"/><property name="startDelay" value="1"/> 在web启动多少毫秒后启动任务<property name="repeatInterval" value="100000000"/> 表示没隔多少毫秒启动</bean><!--一个定时的调度器--><bean id="cronTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail" ref="reportJob"/><property name="cronExpression" value="0 0 6 * * ?"/> 指明每天早上6点启动任务,表达式的解释见下篇文章</bean><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="simpleTrigger"/></list></property></bean></bean>涉及的jar包有:spring.jar,javamail.jar,activation.jar,quartz.jar。
java发送email一般步骤
java发送email⼀般步骤java发送email⼀般步骤⼀、引⼊javamail的jar包:⼆、创建⼀个测试类,实现将要发送的邮件内容写⼊到计算机本地,查看是否能够将内容写⼊:public static void main(String[] args) throws Exception {// 1. 创建⼀封邮件Properties props = new Properties(); // ⽤于连接邮件服务器的参数配置(发送邮件时才需要⽤到)Session session= Session.getDefaultInstance(props); // 根据参数配置,创建会话对象(为了发送邮件准备的)MimeMessage message = new MimeMessage(session); // 创建邮件对象/** 也可以根据已有的eml邮件⽂件创建 MimeMessage 对象* MimeMessage message = new MimeMessage(session, new FileInputStream("MyEmail.eml"));*/// 2. From: 发件⼈// 其中 InternetAddress 的三个参数分别为: 邮箱, 显⽰的昵称(只⽤于显⽰, 没有特别的要求), 昵称的字符集编码// 真正要发送时, 邮箱必须是真实有效的邮箱。
message.setFrom(new InternetAddress("123456@", "USER_AA", "UTF-8"));// 3. To: 收件⼈message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("123654@", "USER_CC", "UTF-8")); // To: 增加收件⼈(可选)//message.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress("dd@", "USER_DD", "UTF-8")); // Cc: 抄送(可选)//message.setRecipient(, new InternetAddress("ee@", "USER_EE", "UTF-8")); // Bcc: 密送(可选)//message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress("ff@", "USER_FF", "UTF-8")); // 4. Subject: 邮件主题message.setSubject("TEST邮件主题", "UTF-8");// 5. Content: 邮件正⽂(可以使⽤html标签)message.setContent("TEST这是邮件正⽂。
Java发送邮件
Java发送邮件Java 发送邮件Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
那么大家知道Java 如何发送邮件呢?下面一起来看看!Java 发送邮件使用Java应用程序发送E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。
您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个Downloads 链接,点击它下载。
您可以从 Java 网站下载最新版本的 JAF(版本 1.1.1)。
你也可以使用本站提供的下载链接:JavaMail mail.jar 1.4.5JAF(版本 1.1.1) activation.jar下载并解压缩这些文件,在新创建的顶层目录中,您会发现这两个应用程序的一些 jar 文件。
您需要把 mail.jar 和activation.jar 文件添加到您的 CLASSPATH 中。
如果你使用第三方邮件服务器如QQ的SMTP服务器,可查看文章底部用户认证完整的实例。
发送一封简单的 E-mail下面是一个发送简单E-mail的例子。
假设你的localhost已经连接到网络。
SendEmail.java 文件代码:// 文件名 SendEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { // 收件人电子邮箱Stringto="**************";//发件人电子邮箱 String from = "*************";// 指定发送邮件的主机为localhost Stringhost = "localhost"; // 获取系统属性Properties properties = System.getProperties(); // 设置邮件服务器properties.setProperty("mail.smtp.host", host); // 获取默认session对象Session session = Session.getDefaultInstance(properties); try{ // 创建默认的MimeMessage 对象MimeMessage message = new MimeMessage(session); // Set From: 头部头字段message.setFrom(new InternetAddress(from)); // Set To: 头部头字段message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: 头部头字段message.setSubject("This is the Subject Line!"); // 设置消息体message.setText("This is actual message"); // 发送消息Transport.send(message); System.out.println("Sent message successfully...."); }catch (MessagingException mex) { mex.printStackTrace(); } } }编译并运行这个程序来发送一封简单的E-mail:$ java SendEmailSent message successfully....如果你想发送一封e-mail给多个收件人,那么使用下面的方法来指定多个收件人ID:void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException下面是对于参数的描述:type:要被设置为 TO, CC 或者 BCC,这里 CC 代表抄送、BCC 代表秘密抄送。
java实现邮件发送
java实现邮件发送本⽂实例为⼤家分享了java实现邮件发送的具体代码,供⼤家参考,具体内容如下1.使⽤socket通信功能实现java的邮件传输1.1 什么是socetSocket的英⽂原义是“孔”或“插座”。
在⽹络编程中,⽹络上的两个程序通过⼀个双向的通信连接实现数据的交换,这个连接的⼀端称为⼀个socket。
Socket套接字是通信的基⽯,是⽀持TCP/IP协议的⽹络通信的基本操作单元。
它是⽹络通信过程中端点的抽象表⽰,包含进⾏⽹络通信必须的五种信息:连接使⽤的协议,本地主机的IP地址,本地进程的协议端⼝,远地主机的IP地址,远地进程的协议端⼝。
Socket本质是编程接⼝(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做⽹络开发所⽤的接⼝,这就是Socket编程接⼝;HTTP是轿车,提供了封装或者显⽰数据的具体形式;Socket是发动机,提供了⽹络通信的能⼒。
1.2.Socket的原理Socket实质上提供了进程通信的端点。
进程通信之前,双⽅⾸先必须各⾃创建⼀个端点,否则是没有办法建⽴联系并相互通信的。
正如打电话之前,双⽅必须各⾃拥有⼀台电话机⼀样套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
1、服务器监听:是服务器端套接字并不定位具体的客户端套接字,⽽是处于等待连接的状态,实时监控⽹络状态。
2、客户端请求:是指由客户端的套接字提出连接请求,要连接的⽬标是服务器端的套接字。
为此,客户端的套接字必须⾸先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端⼝号,然后就向服务器端套接字提出连接请求。
3、连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建⽴⼀个新的线程,把服务器端套接字的描述发给客户端,⼀旦客户端确认了此描述,连接就建⽴好了。
⽽服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
基于JavaMail的Java实现简单邮件发送功能
基于JavaMail的Java实现简单邮件发送功能电⼦邮件的应⽤⾮常⼴泛,例如在某⽹站注册了⼀个账户,⾃动发送⼀封欢迎邮件,通过邮件找回密码,⾃动批量发送活动信息等。
但这些应⽤不可能和我们⾃⼰平时发邮件⼀样,先打开浏览器,登录邮箱,创建邮件再发送。
本⽂将简单介绍如何通过Java 代码来创建电⼦邮件,并连接邮件服务器发送邮件。
1. 电⼦邮件协议电⼦邮件的在⽹络中传输和⽹页⼀样需要遵从特定的协议,常⽤的电⼦邮件协议包括 SMTP,POP3,IMAP。
其中邮件的创建和发送只需要⽤到 SMTP协议,所以本⽂也只会涉及到SMTP协议。
SMTP 是 Simple Mail Transfer Protocol 的简称,即简单邮件传输协议。
2. JavaMail我们平时通过 Java 代码打开⼀个 http ⽹页链接时,通常可以使⽤已经对 http 协议封装好的 HttpURLConnection 类来快速地实现。
Java 官⽅也提供了对电⼦邮件协议封装的 Java 类库,就是JavaMail,但并没有包含到标准的 JDK 中,需要我们⾃⼰去官⽅下载,这⾥我从 JavaEE 官⽅的 Github 仓库下载。
这⾥我下载的版本是 1.6.0 版本,包含了 SMTP, IMAP, 和 POP3 协议的实现的 jar 包:我把 JavaMail 1.6.0 的 jar 包上传到了 CSDN,如果⽆法从 Github 下载,可以从这:特别注意:本测试⽤例⽤的 JavaMail 版本是 1.6.0,如果下载到其他版本的 JavaMail 运⾏时出现问题,请使⽤ JavaMail 1.6.0 版本再进⾏尝试。
使⽤ JavaMail 1.6.0 要求的 JDK 版本必须是 JDK 1.7 以上(建议使⽤最新版 JDK)。
不要直接就完完全全复制我的代码,需要修改⼀下发送的标题、内容、⽤户昵称,要不然所有⼈都直接复制我的代码发送,内容⼀致,邮箱服务器就可能会检测到这些内容是垃圾⼴告内容,不让你发送,会返回错误码,查询错误码也能查询到失败原因。
Java实现Email发送邮件(可发送html内容,样式可编辑)
Java实现Email发送邮件(可发送html内容,样式可编辑)⼀.电⼦邮件协议:SMTP 简单邮件传输SMTP是Simple Mail Transfer Protocol的简称,即简单邮件传输协议。
该协议定义了邮件客户端软件和SMTP服务器之间,以及两台SMTP服务器之间的通信规则。
在Java Mail API中,基于Java Mail的程序将与本公司或Internet服务提供商(ISP)的SMTP服务器通信,该SMTP服务器将会把消息转发给⽤于接收消息的SMTP服务器,最后⽤户可通过POP或IMAP协议获取该消息。
由于⽀持⾝份验证,所以不需要SMTP服务器是⼀种开放的转发器,但需要确保SMTP服务器配置正确。
Java Mail API中没有集成⽤于处理配置服务器以转发消息或添加/删除电⼦邮件账户等功能。
POP3邮局协议POP3是Post Office Protocol 3的简称,即邮局协议第3版,该协议是在RFC 1939中定义的。
它是Internet电⼦邮件的第⼀个离线协议标准,也就是说,POP3是⼀个简单⽽实⽤的邮件信息传输协议。
⽬前在Internet上,⼤多数⼈都采⽤POP3来接收邮件。
POP3为每个⽤户的每个邮箱提供⽀持,但是POP3并不⽀持查看邮件信息及统计新邮件的功能,因此,在使⽤Java Mail API时,如果想获取这些信息,需要⾃⼰进⾏计算。
IMAP 接收邮件协议IMA P的含义是Internet消息访问协议,当前版本是第4版,也称作IMAP4,该协议是在RFC 2060中定义的。
IMAP是接收消息的更加⾼级协议。
使⽤IMAP时,所⽤邮件服务器必须⽀持该协议,但是如果所有邮件服务器只⽀持该协议,并不能使⽤全部IMAP协议,为了能够⽀持全部IMAP协议,所⽤邮件服务器还应该⽀持POP协议。
在Java Mail程序通过IMAP协议可以在服务器上拥有包括多个⽂件夹的⽤户,并且这些⽂件夹可以被多个⽤户共享。
JavaMail邮件发送机制详解
JavaMail邮件发送机制详解这篇⽂章主要介绍了JavaMail邮件发送机制详解,⽂中通过⽰例代码介绍的⾮常详细,对⼤家的学习或者⼯作具有⼀定的参考学习价值,需要的朋友可以参考下概念JavaMail,顾名思义,提供给开发者处理电⼦邮件相关的编程接⼝。
它是Sun发布的⽤来处理email的API。
它可以⽅便地执⾏⼀些常⽤的邮件传输。
我们可以基于JavaMail开发出类似于Microsoft Outlook的应⽤程序。
应⽤场景⼀般在系统的注册模块,当⽤户填⼊注册信息的邮箱时,点击保存。
系统根据⽤户的信息会⾃动给⽤户发送⼀封邮件,上⾯有⽤户的基本信息和注意事项,也可以⽤此⽅法实现⽤户的激活。
代码实现普通⽅式⼀1.⾸先引⼊javaMail的mail坐标即jar包jar包:mail:1.4.1坐标:<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.4</version></dependency>2.测试代码实现⾸先引⼊junit 测试包package mail.test;import java.util.Properties;import javax.mail.Address;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMessage.RecipientType;import org.junit.Test;public class Mail01Test {@Testpublic void testJavaMail() throws Exception{//1.设置邮件的⼀些信息Properties props = new Properties();//发送邮件的服务器地址props.put("mail.smtp.host", "");// props.put("mail.smtp.auth", "true");//2.创建Session对象Session session =Session.getInstance(props);//3.创建出MimeMessage,邮件的消息对象MimeMessage message = new MimeMessage(session);//4.设置发件⼈Address fromAddr = new InternetAddress("发件⼈邮箱");message.setFrom(fromAddr);//5.设置收件⼈Address toAddr = new InternetAddress("收件⼈邮箱");message.setRecipient(RecipientType.TO, toAddr);//6.设置邮件的主题message.setSubject("项⽬进展顺序");//7.设置邮件的正⽂message.setText("项⽬进展顺序,所有兄弟们都⾮常努⼒,⽼板今天可以请吃饭");message.saveChanges();//保存更新//8.得到⽕箭Transport transport = session.getTransport("smtp");transport.connect("", "发件⼈邮箱", "发件⼈密码");//设置了⽕箭的发射地址transport.sendMessage(message, message.getAllRecipients());//发送具体内容及接收⼈transport.close();}}普通⽅式⼆⽅式⼆可以带附件和图⽚1.测试代码:package mail.test;import java.io.File;import javax.mail.internet.MimeMessage;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;public class Mail03Test {@Testpublic void testJavaMail() throws Exception{ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-mail.xml");//得到发送器JavaMailSender mailSender = (JavaMailSender) ac.getBean("mailSender");//得到⼀个MimeMessage对象MimeMessage message = mailSender.createMimeMessage();//产⽣出⼀个MimeMessageHelper helperMimeMessageHelper helper = new MimeMessageHelper(message, true);//⼯具类本质是操作message消息 true代表可以带附件,图⽚//3.使⽤helper⼯具类,设置邮件的发送者,接收者,主题,正⽂helper.setFrom("发送邮箱");helper.setTo("接收邮箱");helper.setSubject("发送图⽚和附件");helper.setText("<html><head></head><body><h1>hello!!spring image html mail</h1><a href=>baidu</a><img src='cid:image' /></body></html>", true); //指定cid的取值FileSystemResource imgResource = new FileSystemResource(new File("E:/01分配权限原理分析.png"));helper.addInline("image", imgResource);//带附件FileSystemResource fileResource = new FileSystemResource(new File("E:/javamail1_4_4.zip"));helper.addAttachment("javamail1_4_4.zip", fileResource);//发送mailSender.send(message);}}2.applicationContext-mail.xml⽂件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:tx="/schema/tx"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/tx/schema/tx/spring-tx.xsd/schema/context/schema/context/spring-context.xsd"><description>JavaMail的配置⽂件</description><!-- 加载mail.properties配置⽂件 --><context:property-placeholder location="classpath:mail.properties"/><!-- 简单消息对象创建 --><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="from" value="${mail.from}"></property></bean><!-- 2.创建发送器 --><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.host}"></property><property name="username" value="${ername}"></property><property name="password" value="${mail.password}"></property><property name="defaultEncoding" value="UTF-8"></property><property name="javaMailProperties"><props><prop key="mail.smtp.auth">true</prop><prop key="mail.debug">true</prop><prop key="mail.smtp.timeout">0</prop></props></property></bean></beans>3.mail.properties⽂件:mail.host=ername=@前⾯的⽤户名mail.password=密码mail.from=发件⼈邮箱全拼以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
JavaMail发送邮件(超详细)
JavaMail发送邮件(超详细)⼀:邮件发送的基本概念 本⽂我将阐述使⽤JavaMail⽅式发送和接收Email的详细说明,本博客本着以后遇到类似的邮件发送需求可以直接把代码粘过去直接使⽤,快捷⽅便省时间,对于刚接触的JavaMail的朋友们还是把⽂章过⼀遍,虽然本⽂不是最好的,但是我可以保证你能成功发送邮件; 关于邮件还有⼀些基本知识我将在下⾯简单介绍,关于邮件发送和接收的流程可以参考1:邮件中的⼏个名词发件⼈:指的是⽤哪个邮箱进⾏发送邮件的⼈收件⼈:指的是接收发件⼈发过来邮件的⼈,代表这封邮件⾯向的读者。
可以是零个到多个。
抄送⼈:指的是发件⼈把邮件发送给收件⼈的同时并抄送⼀份发给抄送⼈;此时抄送⼈可以看到收件⼈、抄送⼈的邮箱密送⼈:指的是发件⼈把邮件发送给收件⼈的同时并抄送⼀份发给密送⼈;此时抄送⼈可以看到收件⼈、抄送⼈的邮箱,⽆法看到密送⼈的邮箱说明:抄送⼈和密送⼈⼀般⽤于项⽬组A给项⽬组B发送邮件确认流程,这时项⽬组A还要告知领导我已经把⽅案流程发送给项⽬组B了;这时我就要把流程⽅案抄送⼀份给领导,就可以⽤到抄送和密送,此邮件领导是不⽤回复的2:发送邮件的⼏种⽅式JavaMail 具体使⽤说明参考Oracle官⽹给出的API:Jakarta Mail 具体使⽤说明参考Jakarta官⽅给出的API:1:javax.*也是java标准的⼀部分,但是没有包含在标准库中,⼀般属于标准库的扩展。
通常属于某个特定领域,不是⼀般性的api。
所以以扩展的⽅式提供api,以避免jdk的标准库过⼤。
当然某些早期的javax,后来被并⼊到标准库中,所有也应该属于新版本JDK的标准库。
⽐如jmx,java5以前是以扩展⽅式提供,但是jdk5以后就做为标准库的⼀部分了,所有javax.management也是jdk5的标准库的⼀部分。
2:com.sun.*是sun的hotspot虚拟机中java.* 和javax.*的实现类。
java中javamail收发邮件实现方法
java中javamail收发邮件实现⽅法概述1、邮件相关的标准⼚商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是⼀组⽤于由源地址到⽬的地址传送邮件的规则,由它来控制信件的中转⽅式。
POP3(Post Office Protocol – Version 3) :即邮局协议版本 3 ,⽤于接收电⼦邮件的标准协议。
IMAP(Internet Mail Access Protocol) :即 Internet 邮件访问协议。
是 POP3 的替代协议。
这三种协议都有对应 SSL 加密传输的协议,分别是 SMTPS , POP3S 和 IMAPS 。
MIME(Multipurpose Internet Mail Extensions) :即多⽤途因特⽹邮件扩展标准。
它不是邮件传输协议。
但对传输内容的消息、附件及其它的内容定义了格式。
2、JavaMail 简介JavaMail 是由 Sun 发布的⽤来处理 email 的 API 。
它并没有包含在 Java SE 中,⽽是作为 Java EE 的⼀部分。
mail.jar :此 JAR ⽂件包含 JavaMail API 和 Sun 提供的 SMTP 、 IMAP 和 POP3 服务提供程序;activation.jar :此 JAR ⽂件包含 JAF API 和 Sun 的实现。
JavaMail 包中⽤于处理电⼦邮件的核⼼类是: Properties 、 Session 、 Message 、 Address 、 Authenticator 、 Transport 、 Store 等。
3、邮件传输过程如上图,电⼦邮件的处理步骤如下:创建⼀个 Session 对象。
Session 对象创建⼀个 Transport 对象 /Store 对象,⽤来发送 / 保存邮件。
JAVA中发送电子邮件的方法
JAVA中发送电⼦邮件的⽅法 JAVA中发送邮件的⽅法不复杂,使⽤sun的JavaMail的架包就可以实现,也可以使⽤Spring Boot封装的⽅法,使⽤起来更加便捷。
⼀、下载JavaMail的架包,并导⼊项⽬中,如下:如果是maven项⽬,maven依赖如下:1<dependency>2<groupId>com.sun.mail</groupId>3<artifactId>javax.mail</artifactId>4<version>1.5.6</version>5</dependency>如果使⽤spring的⽅法,还需要导⼊以下maven依赖:1<dependency>2<groupId>org.springframework</groupId>3<artifactId>spring-context-support</artifactId>4<version>4.3.6.RELEASE</version>5</dependency>⼆、使⽤JavaMail发邮件的代码例⼦,如下:1、在main函数中对各项参数进⾏赋值(参数说明已进⾏备注),即可通过send函数进⾏发送邮件操作。
1public class TestEmail {23private final static String TIMEOUT_MS = "20000";45public static void main(String[] args) {6 String host = "";7 String user = "xxxxxx@";8 String password = "xxxxxx";9 String recipients = "xxxxxx@";10 String cc = "";11 String subject = "邮件发送测试";12 String content = "邮件正⽂:<br>你好!";13//⽅式1:通过URL获取附件14// byte[] attachment = FileUtil.getBytesByUrl("http://127.0.0.1/project/test.pdf");15//⽅式2:通过本地路径获取附件16byte[] attachment = FileUtil.getBytesByFile("c://fujian.pdf");1718 String attachmentName = "";19try {20 attachmentName = MimeUtility.encodeWord("这是附件.pdf");21 send(host, user, password, recipients, cc, subject, content, attachment, attachmentName);22 } catch (Exception e) {23 e.printStackTrace();24 }25 }2627/**28 * @param host 邮件服务器主机名29 * @param user ⽤户名30 * @param password 密码31 * @param recipients 收件⼈32 * @param cc 抄送⼈33 * @param subject 主题34 * @param content 内容35 * @param attachment 附件 [没有传 null]36 * @param attachmentName 附件名称 [没有传 null]37 * @throws Exception38*/39public static void send(final String host, final String user, final String password,40final String recipients, final String cc, final String subject, final String content,41final byte[] attachment,final String attachmentName) throws Exception {42 Properties props = new Properties();43 props.put("mail.smtp.host", host);44 props.put("mail.smtp.auth", "true");45 props.put("mail.smtp.timeout", TIMEOUT_MS);4647 Authenticator auth = new Authenticator() {48 @Override49protected PasswordAuthentication getPasswordAuthentication() {50return new PasswordAuthentication(user, password);51 }52 };53 Session session = Session.getInstance(props, auth);54 MimeMessage msg = new MimeMessage(session);55 msg.setFrom(new InternetAddress(user));56 msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));57if (cc != null && cc.length() > 0) {58 msg.setRecipients(, cc);59 }60 msg.setSubject(subject);61// 向multipart对象中添加邮件的各个部分内容,包括⽂本内容和附件62 Multipart multipart = new MimeMultipart();63// 添加邮件正⽂64 BodyPart contentPart = new MimeBodyPart();65 contentPart.setContent(content, "text/html;charset=UTF-8");66 multipart.addBodyPart(contentPart);67// 添加附件的内容68if (attachment!=null) {69 BodyPart attachmentBodyPart = new MimeBodyPart();70 DataSource source = new ByteArrayDataSource(attachment,"application/octet-stream");71 attachmentBodyPart.setDataHandler(new DataHandler(source));72//MimeUtility.encodeWord可以避免⽂件名乱码73 attachmentBodyPart.setFileName(MimeUtility.encodeWord(attachmentName));74 multipart.addBodyPart(attachmentBodyPart);75 }76// 将multipart对象放到message中77 msg.setContent(multipart);78// 保存邮件79 msg.saveChanges();80 Transport.send(msg, msg.getAllRecipients());81 }82 }2、上⾯的例⼦中,如果有附件,可对附件进⾏设置。
Java实现发邮件功能
本文由我司收集整编,推荐下载,如有疑问,请与我司联系Java 实现发邮件功能2017/08/24 7033 代码如下:package com.weimob.finance.utils;import java.io.UnsupportedEncodingException;import java.util.Date;import java.util.List;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;/*** Java Mail工具类* * @author XueQi* @version 1.0* */ public class MailUtils { private static String host; private static String username; private static String password; private static String from; private static String nick; static { try { // Test Data host = “smtp.qq”;username = “yourqq@qq”;password = “*******”;from = “yourqq@qq”;nick = “nickinfo”;// nick + from 组成邮箱的发件人信息} catch (Exception e) { e.printStackTrace(); } } /** * 发送邮件* * @param to * 收件人列表,以”,”分割* @param subject * 标题* @param body * 内容* @param filepath * 附件列表,无附件传递null * @return * @throws MessagingException *@throws AddressException * @throws UnsupportedEncodingException */ public static boolean sendMail(String to, String subject, String body, List String filepath) throws AddressException, MessagingException, UnsupportedEncodingException { // 参数修饰if (body == null) { body = ““;} if (subject == null) { subject = “无主题”;}// 创建Properties 对象Properties props = System.getProperties(); // 创建信件服务器props.put(“mail.smtp.host”, host); props.put(“mail.smtp.auth”,“true”); // 通过验证props.put(“mail.smtp.port”,“465”);props.put(“mail.transport.protocol”,“smtp”);。
用Java语言实现简单邮件系统
在线查收 比如hotmail。此时只需要登陆服务器收发信件就可以了,用户不必理会pop3和smtp服务器的设置,因为它们是自动在幕后工作的,点击“发送”,smtp就在工作了。
Presentation by: Emil
两种查收邮件的方式
二、离线查收 比如Outlook或者Foxmail。此类软件的好处是可以把信件收到本地的硬盘上。但是在创建新账号的过程中就必须按提示正确填写你的信箱地址、密码、pop3服务器地址、smtp服务器地址,这样才能实现不登陆信箱也能收发信件。
Presentation by: Emil
使用JavaMail发送邮件的基本系统流程
本项目中邮件收发实现过程
使用session建立会话
使用message构建邮件
使用transport建立通信对象
使用transport发送邮件
Presentation by: Emil
本系统组建思路
因为实际上我们的目标系统就是邮件服务器的客户端,所以他的基本功能得以确定:
怎样用J2SE实现邮件系统
Java提供了相应的程序接口 JavaMail是相应的邮件功能实现接口,通过此接口,应用程序可以在黑盒状态下实现与邮件协议的通信,完成邮件收发。实现机制类似于数据库桥接程序原理。
Presentation by: Emil
使用JavaMail接收邮件的基本系统流程
本项目中邮件收发实现过程
Presentation by: Emil
市场上的几种邮件系统性能比较
Presentation by: Emil
大型门户网站的邮件系统
Presentation by: Emil
Exchange Server
1
2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
//message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
//////////////////////java send mail 的库文件//////////////////////
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
//message.setSubject("javatpoint");
message.setText("This is simple program of sending email using JavaMail API");
//body
messageBodyPart2.setFileName(filename);
//5) create Multipart object and add MimeBodyPart objects to this object
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart1);
multipart.addBodyPart(messageBodyPart2);
//6) set the multiplart object to the message object
//int Min = 5;
//int Max = 10;
//int result = Min + (int)(Math.random() * ((Max - Min) + 1));
long result= 3000 + (int)(Math.random()*((6000 - 3000) + 1));
String filename="SendMailBySite.java";
DataSource source = new FileDataSource(FilenameSourse);
messageBodyPart2.setDataHandler(new DataHandler(source));
// String Subjecti="0";
String host="";
final String user="youxiang@";//change accordingly
final String password="password";//change accordingly
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
}
workbook.close();
//Compose the message
}//////end public static void main(String[] args)
}//////end public class SendMailBySite
{
to=sheet.getCell(1,i).getContents();
System.out.println(to);
////try...
////begin try
File file = new File("D://javatest//SendMailBySite/output.xls");
Workbook workbook= Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
//////////////////////////////end 读取excle文件/////////////////////////////////////////
//send the message
for (int i=0;i<=5;i++)
public class SendMailBySite {
public static void main(String[] args) throws IOException, BiffException, InterruptedException {
///////////////////////////邮箱初始化///////////////////////////////
String to="send to";//change accordingly
//Get the session object
Properties props = new Properties();
props.put("mail.smtp.host",host);
props.put("mail.smtp.auth", "true");
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
String FilenameSourse = "D:\\javatest\\SendMailBySite\\test.txt";//change accordingly
return new PasswordAuthentication(user,password);
}
});
///////////////////////////end 邮箱初始化///////////////////////////////
///////////////////////////读取excle文件///////////////////////////////
//import java.util.*;
//////////////////////end java send mail 的库文件//////////////////////
/////////////////////java 操作excel的库文件////////////////////////////
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import bel;
//_____________________body begin__________________________________________
//3) create MimeBodyPart object and set your message text
message.setSubject(Integer.toString(i));
///////注意:主题只能设置一次。
Transport.send(message);
System.out.println("message sent successfully...");
Thread.sleep(result);
System.out.println(result);
} catch (MessagingException e) {e.printStackTrace();}
//////////////////////////end try//////////////////////////
message.setContent(multipart );
//______________________________body end________________________________________
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
BodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText("This is message body");
//4) create new MimeBodyPart object and set DataHandler object to this object
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
/////////////////////java 操作excel的库文件////////////////////////////