java实现发邮件,
导入mail.jar 和activation.jar,common-email.jar
1,发送普通文本EMAIL
代码:
public void sendEmail(String userEmail,String emailTheme,String emailConnection) { Properties p = new Properties(); try { p.load(OpinionfeedbackAction.class.getClassLoader().getResourceAsStream("email.properties")); String emailName = p.getProperty("email.name"); String emailPwd = p.getProperty("email.password"); String hostName = p.getProperty("email.hostname"); String emailFullName = p.getProperty("email.fullName"); //System.out.println("emialFullName:"+ emailFullName); Email email = new SimpleEmail(); email.setHostName(hostName); email.setAuthentication(emailFullName,emailPwd);//这里写emailName也可以 email.setCharset("UTF-8"); email.setTLS(true); //email.setFrom(new InternetAddress(emailFullName,"国家林业科学数据平台").toString());//这里改昵称,也许会报错 email.setFrom(emailFullName,"普通邮件测试");//这里改昵称 email.setSubject(emailTheme); email.setMsg(emailConnection); email.addTo(userEmail); email.send(); } catch (Exception e1) { e1.printStackTrace(); } }
email.properties配置文件:
email.name=emailUsername email.password=pwd email.hostname=smtp.forestdata.cn email.fullName=emailUsername@forestdata.cn
可能遇到问题:
错误一:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
解决方法:到D:\MyEclipse 6.5
\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806
\data\libraryset\EE_5目录下找到javaee.jar删除其中到mail文件夹。
错误二:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
解决方法:
下载mail.jar和activation.jar文件加入到工程中。
2,发送HTML邮件。
其实也就是把Email e = new SimpleEmail()改为HtmlEmail e = new HtmlEmail();
然后再把发送内容的方法改为:e.setHtmlMsg(Content);即可
具体代码如下:
package com.peng; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; import org.apache.commons.mail.Email; import org.apache.commons.mail.HtmlEmail; import org.apache.commons.mail.SimpleEmail; import org.apache.struts2.ServletActionContext; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; public class EmailTest { public static void main(String[] args) throws Exception { //String inputpath = "D:\\zipTest"; //String zipOutpath = "D:\\ziptest.zip"; //zipTest(inputpath,zipOutpath); // unZip ( "D:\\ziptest.zip" , "D://opt" ); StringBuilder c = new StringBuilder(); c.append("<a href=\"http://www.baidu.com\">链接到百度<a>"); c.append("<div style=\" color:red;\">红色DIV</div>"); SendEmail("peng111214@163.com", c.toString(),"邮件测试"); } public static void SendEmail(String email,String content,String theme) throws Exception{ //Email e = new SimpleEmail(); HtmlEmail e = new HtmlEmail(); e.setHostName("smtp.163.com"); e.setAuthentication("pengenjing","pwd"); e.setCharset("Utf-8"); e.setTLS(true); e.setFrom("pengenjing@163.com","HTML测试"); e.setSubject(theme); //e.setMsg(content); e.setHtmlMsg(content); e.addTo(email); e.send(); } }
3,发送附件
public String sendEnclosure() throws EmailException{ String result = null; EmailAttachment emailattachment = new EmailAttachment(); //设置附件路径 emailattachment.setPath(file); //System.out.println(path); emailattachment.setDisposition(EmailAttachment.ATTACHMENT); //附件描述 emailattachment.setDescription("This is Smile picture"); /* * 设置附件的中文乱码问题,解决附件的中文名称 乱码问题 */ BASE64Encoder enc = new BASE64Encoder(); //this.getName().getBytes()使用的是系统缺省的编码处理,这里是GBK emailattachment.setName("=?GBK?B?"+enc.encode(file.getBytes())+"?="); //attachment.setName(this.getName()); //不处理字符集的话,发送的附件中文名称是乱码 //创建一个email MultiPartEmail multipartemail = new MultiPartEmail(); //设置主机名称 multipartemail.setHostName(UserInfo.sendHost); //设置字符编码 multipartemail.setCharset("GB2312"); //设置发送邮件目的地址 multipartemail.addTo(to); //设置发送又见源地址 multipartemail.setFrom(from); //设置用户名和密码 multipartemail.setAuthentication(UserInfo.username, UserInfo.password); //设置主题 multipartemail.setSubject(subject); //设置邮件内容 multipartemail.setMsg(msg); //添加附件 multipartemail.attach(emailattachment); //发送邮件 multipartemail.send(); result = "The attachmentEmail send sucessful!!!"; return result; }
相关推荐
Java-Email开发是一个涵盖电子邮件系统构建的技术主题,主要利用POP3和SMTP协议来实现邮件的发送和接收。在本文中,我们将深入探讨这两个协议的工作原理,以及如何使用Java进行电子邮件开发。 POP3(Post Office ...
Java Email 是一种在Java应用程序中发送和接收电子邮件的机制,主要通过JavaMail API来实现。这个"java-email.rar"文件包含了一个完整的Java Email客户端代码示例,帮助开发者理解和实现自己的邮件功能。 JavaMail ...
java - email的jar包,不知道怎么回事csdn竟然一定要设置资源分。。。
<email>grpc-io@googlegroups.com</email> <url>https://grpc.io/</url> <organization>gRPC Authors <organizationUrl>https://www.google.com</organizationUrl> <connection>scm:git:...
optional string email = 3; } ``` 2. 编译.proto文件:通过protoc命令行工具,将.proto文件转换为Java源代码。在命令行中执行: ``` protoc --java_out=. your_file.proto ``` 3. 在Java代码中使用:生成的...
"java-Email-indexer" 是一个基于 Java 开发的电子邮件搜索和索引工具,专门设计用于提高电子邮件的检索效率。它利用了 Lucene 库进行高效的全文索引,使得用户能够快速地查找和定位电子邮件内容。 **描述详解:** ...
String sql = "INSERT INTO users (name, email) VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "John Doe"); pstmt.setString(2, "john.doe@example.com"); pstmt....
Java发送电子邮件是一个常见的任务,尤其在自动化通知、系统集成或者用户服务中。在这个例子中,我们将探讨如何使用Java来实现这个功能。JavaMail API是Java平台中用于处理邮件的库,它提供了创建、发送和接收电子...
在这个场景中,我们主要关注的是"commons-email-1.5.jar"这个库的使用,它被广泛应用于Android应用中以实现邮件服务。 首先,为了在项目中使用Apache Commons Email库,你需要将"commons-email-1.5.jar"文件引入到...
String sql = "INSERT INTO users (name, email) VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "John Doe"); pstmt.setString(2, "john.doe@example.com"); pstmt....
本篇文章将详细讲解如何使用`commons-email-1.2.jar`这个开源库来实现邮件发送,并通过`TestCommonEMail.java`示例代码进行演示。 Apache Commons Email是Apache软件基金会提供的一个模块,它简化了Java中发送电子...
基于Java调用邮件系统所需要的jar包,commons-email-1.5.jar,javax.mail-1.4.5.jar,activation.jar
`commons-email-1.4.jar`是Apache Commons Email库的核心文件,提供了丰富的类和方法来创建和发送电子邮件。它支持HTML邮件、多部分邮件(包含文本和附件)、抄送、密送等功能。使用Commons Email,开发者可以轻松地...
赠送jar包:commons-email-1.5.jar; 赠送原API文档:commons-email-1.5-javadoc.jar; 赠送源代码:commons-email-1.5-sources.jar; 赠送Maven依赖信息文件:commons-email-1.5.pom; 包含翻译后的API文档:...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-8.0.19.zip`这个压缩包则是MySQL数据库与Java应用程序之间的桥梁,它提供了MySQL Connector/J,这是一个用于Java应用程序的驱动程序,...
"mail.jar、commons-email-1.2.jar、activation.jar下载"这个标题暗示了我们正在处理用于处理电子邮件功能的Java库。这些库对于使用Java编程语言构建邮件发送功能至关重要。 1. **JavaMail API**(mail.jar): ...
标题中的"protobuf-java-3.5.1.jar"是一个Java版本的Protocol Buffers库,用于处理Google的Protocol Buffers(简称protobuf)数据格式。protobuf是一种轻量级、高效的结构化数据序列化机制,广泛应用于跨平台的数据...
在Java编程环境中,发送电子邮件是一项常见的任务,而`commons-email-1.4.jar`是Apache Commons Email库的一个版本,这个库专门设计用于简化Java中的邮件发送。Apache Commons Email是Apache软件基金会开发的一个...
protobuf-java-2.4.1.jar是protobuf的Java实现版本,用于在Java应用程序中处理protobuf编译后的消息类型。 protobuf的核心概念包括消息类型(Message Type)和字段(Field)。消息类型定义了数据结构,字段则描述了...
MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,允许Java开发者在Java应用中访问MySQL数据库。`mysql-connector-java-5.1.41`是MySQL ...