需要下载的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)
下面我直接贴代码了
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)
你上网查都是说用户验证不对,其实一般大家都是按照别人代码拷贝的,然后修改了用户和密码,怎么会不对!
我这个账户和密码都是可以用的,对不起网易了!
由于上面我设置了打印调试,所以你在控制台会看到如下内容:
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看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
NULL 博文链接:https://llying.iteye.com/blog/406660
javamail 邮件发送支持带有图片的html格式和普通文本格式
javamail发送邮件;支持群发、单次发送;文本发送,html发送
javamail发送邮件实例 javamail 发送邮件 文本编辑器 kindeditor
JavaMail发送和接受邮件的一个小例子, 含文本,图片, 附件等复杂格式
JavaMail实现邮件发送的简单封装(包括文本、图片、html、附件) 详见http://blog.csdn.net/lyisray/article/details/42002215
配置好用户名密码以及SMTP服务器就可以直接运行。已包含相关jar
页面使用ajax上传文件,Java端采用file.Transto 来保存上传的文件,支持发送正文文本,图片,附件;图片作为附件发送,如需求图片糅合在正文文本中,只需在代码中稍加改动,有注释。
javaMail邮件发送,这个项目主要完成发送文本和解析html页面。
导入到Myeclipse 即可运行 测试使用的是QQ邮箱 在application.xml中配置的发送邮箱 要到邮箱中设置 POP3/SMTP服务为开。项目不部署到tomcat后启动服务,然后运行test.java 就发送了,。绝对可以发送
springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981
我做了个Javamail发送邮件和java解析pdf,不过目前只会解析纯文本版的pdf,如果换成带图片或者纯图片的pdf就解析不了。解析要用的包都放在lib里,请自行添加。
利用javamail开发的邮件发送工具类 支持普通文本,html,抄送,密送,发送附件 zip中有jar,文档,工程
封装了javamail底层实现,可以实现简单文本邮件的发送和html格式的邮件发送。
实现文本邮件的发送,调用简单,适合急于开发邮件发送系统,却没有时间研究JavaMail的兄弟。 <br/>压缩包内有使用说明README.TXT和比较详细的API说明文档。 欢迎给我提意见。 PS:已经有了含附件发送的...
随着网络技术及网络办公化的发展,电子邮件已经成为人们主要的通信方式之一。平常人们收发邮件主要有两种:一种是通过常用的邮件管理软件来实现...1、 能够收发文本邮件 2、 能够收发HTML邮件 3、 能够收发带附件的邮件
实现简单几步,发送邮件。把javamail进行了包装。支持像多人发送,多人抄送。多附件,纯文本及html格式邮件。
用qq邮箱发送测试通过,能发复杂的邮件。包括图片,附件,html的文本显示等,共享下。
主要介绍了JavaMail实现发送超文本(html)格式邮件的方法,实例分析了java发送超文本文件的相关技巧,需要的朋友可以参考下
JBuilder开发。javamail开发的简单的邮件收发,SWing做为前端界面。能够支持多种邮箱,由于有几种邮箱协议不是很清楚,可能有问题。...内附带一邮件收发实现的基本功能的文本,在基础上可任意扩充。谢谢