- 浏览: 854019 次
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
需要下载的JAR包:
JavaMail:http://www.oracle.com/technetwork/java/javamail/index.html
JAF:http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html
加入的包有:mail.jar activation.jar
你要准备一个邮箱账户,就用网易的吧,然后打开SMTP功能
关于网易的一些端口信息参考下面:
每个公司都是不一样的,使用SSL的和不实用的也不一样
使用的开发和编译环境是JDK1.4,如果你使用的是JDK1.5环境,那么你的环境需要修改一些东西,找到 javaee.jar 删除里面的 mial 包,否则会有冲突
否则会报错:
- Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
- at javax.mail.Session.loadProvidersFromStream(Session.java:928)
- at javax.mail.Session.access$000(Session.java:174)
- at javax.mail.Session$1.load(Session.java:870)
- at javax.mail.Session.loadResource(Session.java:1084)
- at javax.mail.Session.loadProviders(Session.java:889)
- at javax.mail.Session.<init>(Session.java:210)
- at javax.mail.Session.getInstance(Session.java:249)
- at com.mail.TextMail.main(TextMail.java:22)
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream at javax.mail.Session.loadProvidersFromStream(Session.java:928) at javax.mail.Session.access$000(Session.java:174) at javax.mail.Session$1.load(Session.java:870) at javax.mail.Session.loadResource(Session.java:1084) at javax.mail.Session.loadProviders(Session.java:889) at javax.mail.Session.<init>(Session.java:210) at javax.mail.Session.getInstance(Session.java:249) at com.mail.TextMail.main(TextMail.java:22)
下面我直接贴代码了
- package com.mail;
- import java.util.Date;
- import java.util.Properties;
- import javax.mail.Message;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
- import javax.mail.internet.MimeUtility;
- // 如果你使用JDK1.4以上运行 会出现 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
- // 需要你找到 javaee.jar 删掉 里面的 mail 包
- public class TextMail {
- public static void main(String[] args) throws Exception {
- // 配置文件对象
- Properties props = new Properties();
- // 邮箱服务地址
- props.put( "mail.smtp.host ", "smtp.163.com ");
- // 是否进行验证
- props.put("mail.smtp.auth", "true");
- // 创建一个会话
- Session session = Session.getInstance(props);
- // 打开调试,会打印与邮箱服务器回话的内容
- session.setDebug(true);
- Message message = new MimeMessage(session);
- // 如果发送人没有写对,那么会出现 javamail 550 Invalid User
- // 如果发送人写的和使用的帐号不一致,则会出现 553 Mail from must equal authorized user
- InternetAddress from = new InternetAddress("test20120711120200@163.com");
- from.setPersonal(MimeUtility.encodeText("java小强<test20120711120200@163.com>"));
- message.setFrom(from);
- InternetAddress to = new InternetAddress("455213313@qq.com");
- message.setRecipient(Message.RecipientType.TO, to);
- message.setSubject(MimeUtility.encodeText("强哥邀请,谁敢不从!"));
- message.setText("强哥邀请你访问我的博客:http://cuisuqiang.iteye.com/!");
- message.setSentDate(new Date());
- Transport transport = session.getTransport("smtp");
- // 具体你使用邮箱的smtp地址和端口,应该到邮箱里面查看,如果使用了SSL,网易的端口应该是 465/994
- transport.connect("smtp.163.com", 25, "test20120711120200", "test123456");
- transport.sendMessage(message, message.getAllRecipients());
- transport.close();
- System.out.println("发送完毕");
- }
- }
package com.mail; import java.util.Date; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; // 如果你使用JDK1.4以上运行 会出现 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream // 需要你找到 javaee.jar 删掉 里面的 mail 包 public class TextMail { public static void main(String[] args) throws Exception { // 配置文件对象 Properties props = new Properties(); // 邮箱服务地址 props.put( "mail.smtp.host ", "smtp.163.com "); // 是否进行验证 props.put("mail.smtp.auth", "true"); // 创建一个会话 Session session = Session.getInstance(props); // 打开调试,会打印与邮箱服务器回话的内容 session.setDebug(true); Message message = new MimeMessage(session); // 如果发送人没有写对,那么会出现 javamail 550 Invalid User // 如果发送人写的和使用的帐号不一致,则会出现 553 Mail from must equal authorized user InternetAddress from = new InternetAddress("test20120711120200@163.com"); from.setPersonal(MimeUtility.encodeText("java小强<test20120711120200@163.com>")); message.setFrom(from); InternetAddress to = new InternetAddress("455213313@qq.com"); message.setRecipient(Message.RecipientType.TO, to); message.setSubject(MimeUtility.encodeText("强哥邀请,谁敢不从!")); message.setText("强哥邀请你访问我的博客:http://cuisuqiang.iteye.com/!"); message.setSentDate(new Date()); Transport transport = session.getTransport("smtp"); // 具体你使用邮箱的smtp地址和端口,应该到邮箱里面查看,如果使用了SSL,网易的端口应该是 465/994 transport.connect("smtp.163.com", 25, "test20120711120200", "test123456"); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("发送完毕"); } }
需要注意的有
InternetAddress from = new InternetAddress("test20120711120200@163.com");
和
transport.connect("smtp.163.com", 25, "test20120711120200", "test123456");
这两个邮箱的地址必须相同,否则会出现
- Exception in thread "main" javax.mail.MessagingException: 553 Mail from must equal authorized user
- at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
- at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
- at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
- at com.mail.TextMail.main(TextMail.java:38)
Exception in thread "main" javax.mail.MessagingException: 553 Mail from must equal authorized user at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388) at com.mail.TextMail.main(TextMail.java:38)
你上网查都是说用户验证不对,其实一般大家都是按照别人代码拷贝的,然后修改了用户和密码,怎么会不对!
我这个账户和密码都是可以用的,对不起网易了!
由于上面我设置了打印调试,所以你在控制台会看到如下内容:
- DEBUG: setDebug: JavaMail version 1.3.1
- DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
- DEBUG SMTP: useEhlo true, useAuth true
- DEBUG SMTP: trying to connect to host "smtp.163.com", port 25
- 220 163.com Anti-spam GT for Coremail System (163com[20111010])
- DEBUG SMTP: connected to host "smtp.163.com", port: 25
- EHLO cuisuqiang
- 250-mail
- 250-PIPELINING
- 250-AUTH LOGIN PLAIN
- 250-AUTH=LOGIN PLAIN
- 250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrgdNesUCa0xDrUUUUj
- 250-STARTTLS
- 250 8BITMIME
- DEBUG SMTP: Found extension "PIPELINING", arg ""
- DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
- DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN"
- DEBUG SMTP: Found extension "coremail", arg "1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrgdNesUCa0xDrUUUUj"
- DEBUG SMTP: Found extension "STARTTLS", arg ""
- DEBUG SMTP: Found extension "8BITMIME", arg ""
- DEBUG SMTP: Attempt to authenticate
- AUTH LOGIN
- 334 dXNlcm5hbWU6
- dGVzdDIwMTIwNzExMTIwMjAw
- 334 UGFzc3dvcmQ6
- dGVzdDEyMzQ1Ng==
- 235 Authentication successful
- DEBUG SMTP: use8bit false
- MAIL FROM:<test20120711120200@163.com>
- 250 Mail OK
- RCPT TO:<455213313@qq.com>
- 250 Mail OK
- DEBUG SMTP: Verified Addresses
- DEBUG SMTP: 455213313@qq.com
- DATA
- 354 End data with <CR><LF>.<CR><LF>
- Message-ID: <14518194.1341995865564.JavaMail.Administrator@cuisuqiang>
- Date: Wed, 11 Jul 2012 16:37:45 +0800 (CST)
- From: "=?GBK?Q?java=D0=A1=C7=BF<test20120711120200@163.com>?=" <test20120711120200@163.com>
- To: 455213313@qq.com
- Subject: =?GBK?B?x7+459H7x+ujrMutuNKyu7TTo6E=?=
- Mime-Version: 1.0
- Content-Type: text/plain; charset=GBK
- Content-Transfer-Encoding: quoted-printable
- =C7=BF=B8=E7=D1=FB=C7=EB=C4=E3=B7=C3=CE=CA=CE=D2=B5=C4=B2=A9=BF=CD=A3=BAhtt=
- p://cuisuqiang.iteye.com/=A3=A1
- .
- 250 Mail OK queued as smtp2,DNGowEB52UhcO_1PZmMMCA--.937S2 1341995868
- QUIT
DEBUG: setDebug: JavaMail version 1.3.1 DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.163.com", port 25 220 163.com Anti-spam GT for Coremail System (163com[20111010]) DEBUG SMTP: connected to host "smtp.163.com", port: 25 EHLO cuisuqiang 250-mail 250-PIPELINING 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrgdNesUCa0xDrUUUUj 250-STARTTLS 250 8BITMIME DEBUG SMTP: Found extension "PIPELINING", arg "" DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN" DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN" DEBUG SMTP: Found extension "coremail", arg "1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrgdNesUCa0xDrUUUUj" DEBUG SMTP: Found extension "STARTTLS", arg "" DEBUG SMTP: Found extension "8BITMIME", arg "" DEBUG SMTP: Attempt to authenticate AUTH LOGIN 334 dXNlcm5hbWU6 dGVzdDIwMTIwNzExMTIwMjAw 334 UGFzc3dvcmQ6 dGVzdDEyMzQ1Ng== 235 Authentication successful DEBUG SMTP: use8bit false MAIL FROM:<test20120711120200@163.com> 250 Mail OK RCPT TO:<455213313@qq.com> 250 Mail OK DEBUG SMTP: Verified Addresses DEBUG SMTP: 455213313@qq.com DATA 354 End data with <CR><LF>.<CR><LF> Message-ID: <14518194.1341995865564.JavaMail.Administrator@cuisuqiang> Date: Wed, 11 Jul 2012 16:37:45 +0800 (CST) From: "=?GBK?Q?java=D0=A1=C7=BF<test20120711120200@163.com>?=" <test20120711120200@163.com> To: 455213313@qq.com Subject: =?GBK?B?x7+459H7x+ujrMutuNKyu7TTo6E=?= Mime-Version: 1.0 Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: quoted-printable =C7=BF=B8=E7=D1=FB=C7=EB=C4=E3=B7=C3=CE=CA=CE=D2=B5=C4=B2=A9=BF=CD=A3=BAhtt= p://cuisuqiang.iteye.com/=A3=A1 . 250 Mail OK queued as smtp2,DNGowEB52UhcO_1PZmMMCA--.937S2 1341995868 QUIT
这些都是程序与邮件服务商的一些交互信息!
最后:
由于近期大量小网站在未经同意情况下使用文章,现将我的博客地址公布如下,请您到ITEYE网站看原创,谢谢!
发表评论
-
eclispe 实用插件大全
2016-03-31 10:17 836在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的 ... -
单点登录 SSO Session
2016-03-14 16:56 4052单点登录在现在的 ... -
通用权限管理设计 之 数据库结构设计
2016-01-26 13:22 2952通用权限管理设计 之 ... -
分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
2016-01-26 13:22 1493分享一个基于ligerui的系统应用案例ligerRM V2 ... -
通用权限管理设计 之 数据权限
2016-01-26 13:20 740通用权限管理设计 之 数据权限 阅读目录 前 ... -
使用RSA进行信息加密解密的WebService示例
2015-12-28 10:30 876按:以下文字涉及RS ... -
防止网站恶意刷新
2015-10-22 10:55 705import java.io.IOExcept ... -
单点登录
2015-10-19 14:24 763Cas自定义登录页面Ajax实现 博客分类: ... -
session如何在http和https之间同步
2015-09-14 09:25 2254首先说下 http>https>http ... -
基于 Quartz 开发企业级任务调度应用
2015-08-17 11:17 839Quartz 是 OpenSy ... -
Java加密技术(十二)——*.PFX(*.p12)&个人信息交换文件
2015-08-17 11:17 878今天来点实际工 ... -
Java加密技术(十)——单向认证
2015-08-13 10:13 679在Java 加密技术(九)中,我们使 ... -
Java加密技术(九)——初探SSL
2015-08-13 10:12 885在Java加密技术(八)中,我们模拟 ... -
Java加密技术(八)——数字证书
2015-08-13 10:12 891本篇的主要内容为Java证书体系的实 ... -
Java加密技术(七)——非对称加密算法最高级ECC
2015-08-13 10:12 973ECC ECC-Elliptic Curv ... -
Java加密技术(六)——数字签名算法DSA
2015-08-13 10:11 1060接下来我们介绍DSA数字签名,非对称 ... -
Java加密技术(五)——非对称加密算法的由来DH
2015-08-12 16:13 869接下来我们 ... -
Java加密技术(四)——非对称加密算法RSA
2015-08-12 16:11 1094接下来我们介绍典型的非对称加密算法—— ... -
Java加密技术(三)——PBE算法
2015-08-12 16:10 958除了DES,我们还知道有DESede( ... -
Java加密技术(二)——对称加密算法DES&AES
2015-08-12 16:09 719接下来我们介绍对称加密算法,最常用的莫 ...
相关推荐
这个简单的示例演示了如何使用 JavaMail 发送文本邮件。对于更复杂的邮件,如包含 HTML 内容、附件或嵌入图片,你可以扩展 `MimeMessage`,使用 `MimeBodyPart` 和 `Multipart` 类来构建复杂的邮件结构。 总的来说...
JavaMail邮件发送是一个常见的开发需求,它允许程序员通过编程方式发送包含文本、附件甚至多媒体内容的电子邮件。在Java中,JavaMail API提供了这样的功能,它是一个开源库,用于处理SMTP(简单邮件传输协议)、POP3...
首先,JavaMail API 是Java平台上的一个库,它允许开发者通过SMTP(简单邮件传输协议)或其他邮件传输协议发送电子邮件。在JavaMail中,我们通常使用`MimeMessage`类来创建邮件对象,`Multipart`类来组合不同的邮件...
3. **发送文本邮件** - 创建`MimeMessage`实例,并设置发件人、收件人、主题和正文。 - 示例代码: ```java MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("from@...
JavaMail 是一个开源的 Java API,它为 Java 程序员提供了处理电子邮件的功能,包括发送、接收和管理邮件。这个“javamail-1.4.4”版本是 JavaMail 的一个稳定版本,提供了丰富的功能和改进,适用于各种邮件系统。在...
"常规JavaMail 邮件发送实用类"标题所指的,通常是一个自定义的Java类,封装了JavaMail API的基本操作,使得邮件发送变得更加简单和便捷。这类实用类一般包含配置SMTP服务器、设置邮件内容、添加附件等功能。 ...
要实现JavaMail的邮件发送功能,你需要了解以下几个关键组件: 1. `Session`:邮件会话对象,它是整个邮件操作的核心,负责配置SMTP服务器信息,如主机名、端口、用户名和密码。 2. `Message`:代表一封邮件,你...
JavaMail API 是一个广泛使用的 Java 库,用于发送和接收电子邮件。它提供了丰富的功能来处理不同类型的邮件内容,包括纯文本、HTML 格式以及包含图片在内的富媒体邮件。在实际应用中,开发人员常常需要将这些格式...
Apache Commons Email是Apache软件基金会的一个子项目,它简化了JavaMail API的使用,提供了一个更简洁的接口来创建和发送邮件。Commons Email库的核心类是`Email`,它允许开发者构建邮件,添加附件,设置抄送和密送...
这个压缩包中的资源可能包括了实现这一功能所需的全部源代码,让你能够直接在自己的项目中集成邮件发送功能,无需额外付费。 JavaMail API 提供了丰富的类和接口,用于处理邮件服务器的交互,如 SMTP(简单邮件传输...
以上就是基于JavaMail邮件发送工具类的一些核心概念和使用方法。在实际开发中,还需要根据具体需求进行错误处理、多线程发送、邮件模板等功能的扩展。通过这些类的封装,可以使得邮件发送的代码更加简洁、易于维护。
2. **获取Session对象**:使用`Properties`对象创建一个`Session`实例,它是邮件会话的容器,可以存储邮件发送的配置信息。 3. **创建Message对象**:通过`Session`对象创建一个`Message`实例,这代表了你要发送的...
JavaMail邮件发送Demo是Java开发中用于实现电子邮件发送的一个实例,它依赖于两个关键的库:activation.jar和mail.jar。这两个库提供了JavaMail API,使得Java开发者能够方便地与各种邮件服务器进行交互,完成邮件的...
JavaMail邮件发送源码是Java开发中用于发送电子邮件的一个库,它提供了丰富的API来处理SMTP、POP3和IMAP等邮件协议。这个简单的javamail实例表明,开发者已经成功地测试了邮件发送功能,确保其在实际应用中可以正常...
JavaMail 是一个强大的开源库,用于在 Java 应用程序中处理电子邮件的发送和接收。它提供了丰富的 API,使得开发者可以方便地实现邮件的发送、接收、管理等操作。在这个主题中,我们将深入探讨如何使用 JavaMail ...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个功能通常涉及到SMTP(简单邮件传输协议)和其他相关的互联网邮件协议。在JavaMail中,`mail.jar` 和 `activation.jar` 是两个关键的库...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这...
使用设置好的属性创建一个`Session`对象,这个对象将被用来创建`Transport`实例,用于实际的邮件发送。 ```java Session session = Session.getInstance(props, new Authenticator() { protected ...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对...
在IT行业中,电子邮件的收发是一项基础且重要的功能,尤其对于开发者来说,了解如何通过编程方式实现邮件的发送和接收是非常必要的。在这个例子中,我们将深入探讨如何利用James服务器和JavaMail API来实现这一目标...