`

java-email

 
阅读更多

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开发

    Java-Email开发是一个涵盖电子邮件系统构建的技术主题,主要利用POP3和SMTP协议来实现邮件的发送和接收。在本文中,我们将深入探讨这两个协议的工作原理,以及如何使用Java进行电子邮件开发。 POP3(Post Office ...

    java-email.rar_email_email java_email客户端_java email_java mail 客户

    Java Email 是一种在Java应用程序中发送和接收电子邮件的机制,主要通过JavaMail API来实现。这个"java-email.rar"文件包含了一个完整的Java Email客户端代码示例,帮助开发者理解和实现自己的邮件功能。 JavaMail ...

    java-email的jar包

    java - email的jar包,不知道怎么回事csdn竟然一定要设置资源分。。。

    protoc-gen-grpc-java-1.40.0-osx-aarch_64.exe

    &lt;email&gt;grpc-io@googlegroups.com&lt;/email&gt; &lt;url&gt;https://grpc.io/&lt;/url&gt; &lt;organization&gt;gRPC Authors &lt;organizationUrl&gt;https://www.google.com&lt;/organizationUrl&gt; &lt;connection&gt;scm:git:...

    protobuf-java-2.5.0jar包

    optional string email = 3; } ``` 2. 编译.proto文件:通过protoc命令行工具,将.proto文件转换为Java源代码。在命令行中执行: ``` protoc --java_out=. your_file.proto ``` 3. 在Java代码中使用:生成的...

    java-Email-indexer:快速电子邮件搜索和索引

    "java-Email-indexer" 是一个基于 Java 开发的电子邮件搜索和索引工具,专门设计用于提高电子邮件的检索效率。它利用了 Lucene 库进行高效的全文索引,使得用户能够快速地查找和定位电子邮件内容。 **描述详解:** ...

    mysql-connector-java-8.0.16

    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-Email

    Java发送电子邮件是一个常见的任务,尤其在自动化通知、系统集成或者用户服务中。在这个例子中,我们将探讨如何使用Java来实现这个功能。JavaMail API是Java平台中用于处理邮件的库,它提供了创建、发送和接收电子...

    commons-email-1.5.jar

    在这个场景中,我们主要关注的是"commons-email-1.5.jar"这个库的使用,它被广泛应用于Android应用中以实现邮件服务。 首先,为了在项目中使用Apache Commons Email库,你需要将"commons-email-1.5.jar"文件引入到...

    mysql-connector-java-5.1.44-bin

    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实现发邮件功能

    本篇文章将详细讲解如何使用`commons-email-1.2.jar`这个开源库来实现邮件发送,并通过`TestCommonEMail.java`示例代码进行演示。 Apache Commons Email是Apache软件基金会提供的一个模块,它简化了Java中发送电子...

    commons-email-1.5.jar下载

    基于Java调用邮件系统所需要的jar包,commons-email-1.5.jar,javax.mail-1.4.5.jar,activation.jar

    Java Mail和Commons-email发简单的邮件所用到的jar包

    `commons-email-1.4.jar`是Apache Commons Email库的核心文件,提供了丰富的类和方法来创建和发送电子邮件。它支持HTML邮件、多部分邮件(包含文本和附件)、抄送、密送等功能。使用Commons Email,开发者可以轻松地...

    commons-email-1.5-API文档-中英对照版.zip

    赠送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-connector-java-8.0.19.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-8.0.19.zip`这个压缩包则是MySQL数据库与Java应用程序之间的桥梁,它提供了MySQL Connector/J,这是一个用于Java应用程序的驱动程序,...

    mail.jar、commons-email-1.2.jar 、activation.jar下载

    "mail.jar、commons-email-1.2.jar、activation.jar下载"这个标题暗示了我们正在处理用于处理电子邮件功能的Java库。这些库对于使用Java编程语言构建邮件发送功能至关重要。 1. **JavaMail API**(mail.jar): ...

    protobuf-java-3.5.1.jar

    标题中的"protobuf-java-3.5.1.jar"是一个Java版本的Protocol Buffers库,用于处理Google的Protocol Buffers(简称protobuf)数据格式。protobuf是一种轻量级、高效的结构化数据序列化机制,广泛应用于跨平台的数据...

    邮件发送--commons-email-1.4.jar

    在Java编程环境中,发送电子邮件是一项常见的任务,而`commons-email-1.4.jar`是Apache Commons Email库的一个版本,这个库专门设计用于简化Java中的邮件发送。Apache Commons Email是Apache软件基金会开发的一个...

    protobuf实例protobuf-java-2.4.1.jar

    protobuf-java-2.4.1.jar是protobuf的Java实现版本,用于在Java应用程序中处理protobuf编译后的消息类型。 protobuf的核心概念包括消息类型(Message Type)和字段(Field)。消息类型定义了数据结构,字段则描述了...

    mysql-connector-java-5.1.41

    MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,允许Java开发者在Java应用中访问MySQL数据库。`mysql-connector-java-5.1.41`是MySQL ...

Global site tag (gtag.js) - Google Analytics