- 浏览: 186307 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xoxoj:
如果发现input输入框里包含这些全角的内容,jquery应该 ...
全角正则 -
TJYCHYANGCHENHUI:
不对吧!你的第一句话说错了好吧,在没有开启事务的情况下,sa ...
hibernate入门(三)Session中的主要方法 -
leonardleonard:
好帖
js公共函数(utils.js) -
xyqqjy:
朋友你和我的现状很像啊!
我离职快一年了,一直没有再做开发这一 ...
浮躁,我 -
djy1135:
确实需要静一下心! 一样一样来吧。 东西学不半扔了,跟没学差 ...
浮躁,我
用java实现发邮件的原理非常简单,首先建立和邮件服务器的Socket连接,然后进行和服务器握手,然后发送smtp指令,并封装邮件体,然后发送即可:
import java.net.*; import java.io.*; import java.util.*; public class SMTPSender{ Socket socket=null; PrintWriter outData=null; BufferedReader inData=null; String smtpServer=""; String user=""; String pass=""; String from=""; String LINEFEED="\r\n"; boolean isNeedAuthLogin=false; Vector to=new Vector(); public static void main(String[] args){ SMTPSender smtp=new SMTPSender(); smtp.setMailServer("mail.ehawa.com"); smtp.setMailFrom("root@ehawa.com","???","???"); smtp.addMailTo("root@ehawa.com"); if(smtp.send("hello","这是一个测试!")){ System.out.println("邮件发送成功!"); }else System.out.println("邮件发送失败!"); } public void setMailServer(String s){ smtpServer=s; } public void setMailFrom(String s,String uid,String pwd){ this.from=s; this.user=uid; this.pass=pwd; this.isNeedAuthLogin=(this.user!=null&&this.pass!=null&&!this.user.equals("")&&!this.pass.equals("")); } public boolean addMailTo(String mailAddr){ to.addElement(mailAddr); return true; } public boolean send(String subject,String content){ try{ if(smtpServer==null||smtpServer.equals(""))return false; if(from==null||from.equals(""))return false; if(to.size()<1)return false; socket=new Socket(smtpServer,25); outData=new PrintWriter(socket.getOutputStream()); inData=new BufferedReader(new InputStreamReader(socket.getInputStream())); //与邮件服务器连接成功 readResponse("220"); //HELO host sendRequest("HELO "+smtpServer+LINEFEED); readResponse("250"); if(isNeedAuthLogin){ //AUTH LOGIN sendRequest("AUTH LOGIN"+LINEFEED); readResponse("334"); //USERNAME: sendRequest(new String(Base64.encodeString(user))+LINEFEED); readResponse("334"); //PASSWORD: sendRequest(new String(Base64.encodeString(pass))+LINEFEED); readResponse("235"); } //MAIL FROM:<..> sendRequest("MAIL FROM:<"+from+">"+LINEFEED); readResponse("250"); //RCPT TO:<..> for(Enumeration enu=to.elements();enu.hasMoreElements();){ String to1=(String)enu.nextElement(); sendRequest("RCPT To:<"+to1+">"+LINEFEED); readResponse("250"); } //DATA sendRequest("DATA"+LINEFEED); readResponse("354"); //邮件内容 StringBuffer s1=new StringBuffer("From: <"+from+">"+LINEFEED); s1.append("To: <"+to+">"+LINEFEED); s1.append("Subject: "+subject+LINEFEED); s1.append("Date: "+new java.util.Date().toLocaleString()+LINEFEED); s1.append("Content-Type: text/plain;charset=\"GB2312\""+LINEFEED); s1.append(LINEFEED); s1.append(content); s1.append(LINEFEED+"."+LINEFEED);//发送 sendRequest(s1.toString()); readResponse("250"); //QUIT退出 sendRequest("QUIT"+LINEFEED); readResponse("221"); try{ inData.close(); inData=null; }catch(Exception ex){} try{ outData.close(); outData=null; }catch(Exception ex){} try{ socket.close(); socket=null; }catch(Exception ex){} }catch(Exception e){ return false; //e.printStackTrace(); } return true; } private void readResponse(String cmd)throws Exception{ String tmp=inData.readLine(); if(tmp.startsWith(cmd));//System.out.println(" [S:]"+tmp); else throw new Exception("##########邮件发送失败!##########"+tmp); while(tmp.startsWith(cmd+"-"))tmp=inData.readLine(); } private void sendRequest(String msg){ //System.out.print("***[C:]"+msg); outData.write(msg); outData.flush(); } public void close(){ try{ inData.close(); inData=null; }catch(Exception ex){} try{ outData.close(); outData=null; }catch(Exception ex){} try{ socket.close(); socket=null; }catch(Exception ex){} } }
发表评论
-
Android开源git40个App源码
2019-04-26 10:48 574(JamsMusicPlayer)很棒的音乐播放器( ... -
Quartz的cron表达式
2019-03-22 11:48 4041. Seconds 2. ... -
JAVA JS 身份证正则表达式
2012-03-28 16:36 1275String pattern = "( ... -
生产者消费者问题实现
2011-10-31 14:16 804这是个线程同步的经典例子,源代码如下: /** *经 ... -
设计模式----观察者模式Observer
2011-10-19 10:06 840Observer模式 Observer模式的功用,是希望两个 ... -
META-INF中的MANIFEST.MF的作用
2011-03-03 16:50 2019MANIFEST中的配置信息共 ... -
JAVA日期时间小结
2011-03-01 11:30 2203Java 语言的Calendar,GregorianCalen ... -
java读取Properties文件六种方法
2011-01-28 10:15 8911。使用java.util.Properties类的load( ... -
ireport相关之jasper
2010-11-09 13:57 1530ireport是工具,jasper才是核心。没有ireport ... -
Java 实现文件分割合并
2010-08-06 22:37 1186import java.io.*; class Fen{ ... -
java写的des加密解密
2010-08-06 22:02 1302首先说一下什么是DES加密 DES算法为密码体制中的对称密码 ... -
Jasper Report总结
2010-07-30 12:43 1764下载 Jasper: ... -
java给图片加水印,文字
2010-07-19 22:59 1001import java.awt.AlphaComposite; ... -
JSP中的EL表达式
2010-07-11 23:19 760一、JSP EL语言定义 ... -
Java生成gif动画
2010-07-09 21:17 1397BufferedImage src = ImageI ... -
四个有用的Java过滤器收藏
2010-07-09 21:15 907一、使浏览器不缓存页面的过滤器 一、使浏览器不缓存页面的过滤 ... -
简捷强大的单文件XML操作工具类
2010-07-09 21:13 1018这个是XML操作工具类,只有一个类文件,使用的全部是JDK ... -
Java连接各种数据库
2010-07-09 21:08 7261、Oracle8/8i/9i数据库(thin模式) C ... -
java采集csdn论坛源码
2010-07-09 17:15 1322import java.io.BufferedReader; ... -
java ThreadLocal
2010-06-25 17:41 747一:ThreadLocal的设计与实现 早在Java 1.2 ...
相关推荐
本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...
在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...
本文将详细介绍如何使用Java实现发送邮件的实例,并提供所需的库和步骤。 首先,JavaMail API是Java中用于处理邮件的核心库。在描述中提到的"jar包"很可能是JavaMail相关的依赖,例如`javax.mail`和`javax.mail-api...
本文将详细讲解如何使用Java实现邮件自动发送,并基于提供的两个源码文件`mailFor163`和`mailForSina`进行解析。 首先,Java Mail API是Java发送邮件的核心库,它提供了丰富的接口和类来处理邮件协议,如SMTP(简单...
本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...
根据你的需求,你需要选择合适的协议来实现邮件客户端。 10. **SSL/TLS安全连接**: 为了确保通信的安全,现代邮件服务器通常要求使用SSL或TLS加密。JavaMail API支持这些安全协议,需要在配置Session时启用它们。 ...
### Java实现邮件发送 本文将基于提供的描述及部分代码片段,详细介绍如何利用Java实现邮件发送功能。本教程涉及的关键知识点包括:配置邮件服务器、设置发件人与收件人信息、处理邮件验证以及附件的添加。 #### ...
在这个场景下,我们将深入探讨如何使用Java来实现这个功能,以及涉及的相关知识点。 首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,它提供了标准的JavaMail API规范,允许开发者发送、接收和...
在Java中实现邮件客户端,首先需要引入JavaMail的相关库,如javax.mail和javax.mail.internet。 2. **SMTP协议**:简单邮件传输协议(SMTP)用于发送邮件。JavaMail API通过SMTP与邮件服务器交互,将邮件发送到指定...
资源是在Java代码中采用JavaEmail来实现发邮件的功能
### Java 实现简单邮件程序详解 #### 一、概述 在现代互联网应用中,电子邮件仍然是一个非常重要的通信手段。无论是企业内部沟通还是对外营销活动,邮件都扮演着不可或缺的角色。本篇文章将详细介绍如何使用Java...
在Java编程语言中,发送电子邮件是一项常见的任务,可以用于通知、报告或者传递文件。...通过理解和应用上述代码示例,你可以创建自己的Java程序来实现邮件发送,无论是简单的文本邮件还是包含附件的复杂邮件。
以上就是使用Java实现邮件群发的基本步骤。通过理解 JavaMail API 的工作原理,并结合适当的库,可以构建出高效且可靠的邮件群发系统。在实际开发过程中,还应注意避免触发邮件服务商的反垃圾邮件策略,以确保邮件...
本教程将详细讲解如何使用Java实现发送邮件,包括发送图片和附件。 首先,你需要在项目中引入Java Mail API的相关依赖。通常我们使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
用Java语言实现简单邮件系统 用Java语言实现简单邮件系统 用Java语言实现简单邮件系统
本文将详细讲解如何使用Java实现发送邮件的功能,并基于给出的描述和标签,我们将深入探讨相关的JavaMail API及其使用方法。 首先,JavaMail API是Java平台上的一个开源库,它提供了一系列接口和类,用于处理邮件的...
总结来说,这个Java实现的邮件客户端是一个完整的项目,它利用JavaMail API实现了邮件的收发功能,支持图片和附件的处理,还附带了一份实验报告,详细介绍了客户端的使用和内部工作原理。对于学习Java邮件处理和GUI...
在本案例中,我们将关注如何使用Java Socket来实现SMTP(Simple Mail Transfer Protocol)邮件发送,并支持SSL(Secure Sockets Layer)和TLS(Transport Layer Security)安全协议。 SMTP是一种互联网标准,用于在...
本文将深入探讨如何使用JavaMail API在Java应用程序中实现发送邮件的功能,同时也会涉及验证码验证以及网页版邮件发送的实现。 首先,要发送邮件,我们需要引入JavaMail的相关库。通常,这包括`javax.mail`和`javax...
本教程将深入探讨如何使用Java实现这一功能。Java提供了多种库来处理邮件发送,其中最常用的便是JavaMail API。 JavaMail API是Java平台上用于发送和接收电子邮件的标准API,它提供了丰富的接口和类来处理邮件协议...