`

通过Java发送Email ,简单入门。

阅读更多

最近没事做,写了一个简单的邮件发送实例..

 

首先做好, 准备工作..如果是JDK1.5则要准备如下两个包.

mail.jar

activation.jar

 

把这这两个包,添加到项目的依赖中..

 

接下来就是写Email 代码的部分:

具体代码如下:

 

/**
 * 邮件的基本配置信息;
 * @author Administrator
 *
 */
public class MailSenderInfo  {
	//发送邮件服务器;
	private String emailServiceHost;
	//发送服务器端口;
	private String emailServicePort;
	//邮件发送者地址;
	private String fromAddress;
	//邮件接收地址;
	private String toAddress;
	//登陆邮件服务器的用户名;
	private String userName;
	//登陆邮件服务器的密码;
	private String password;
	//是否需要验证;
	private boolean validate;
	//邮件主题;
	private String subject;
	//邮件内容;
	private String content;
	//附件文件名;
	private String[] attachFileNames;
	
	//***getter 和 setter方法省略***
}

 

 

接下来封装发送邮件的方法.

public class SimpleMailSender {
	/**
	 * 以文本的格式发送邮件;
	 * @return boolean;
	 */
	public boolean sendTextMail(MailSenderInfo mailSenderInfo){
		//是否身份验证;
		MyAuthenticator authenticator = null;

		//获取邮件的配置信息;
		Properties properties = new Properties();
		properties.put("mail.smtp.host",mailSenderInfo.getEmailServiceHost()); 
		properties.put("mail.smtp.auth", "true");
		
		//判断是否身份验证;
		if(mailSenderInfo.isValidate()){
			//如果是需要身份验证,这创建一个密码验证器;
			authenticator = new MyAuthenticator(mailSenderInfo.getUserName(), mailSenderInfo.getPassword()); 
		}

		//根据邮件 的用户名和密码创建一个发邮件的Session;
		Session senderMailSession = Session.getDefaultInstance(properties,authenticator);

		//根据session创建一个邮件消息;
		Message mailMessage = new MimeMessage(senderMailSession);
		try {
			try {
				//创建邮件发送者地址;
				mailMessage.setFrom(new InternetAddress(mailSenderInfo.getFromAddress()));

				//创建邮件接收者地址;
				Address toAddress = new InternetAddress(mailSenderInfo.getToAddress());	
				mailMessage.setRecipient(Message.RecipientType.TO,toAddress);
			} catch (AddressException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			//设置邮件主题;
			mailMessage.setSubject(mailSenderInfo.getSubject());

			//设置邮件发送时间:
			mailMessage.setSentDate(new Date());

			//设置邮件内容;设置这个. "text/html;charset=utf-8"  解决内容乱码问题..
			 mailMessage.setContent(mailSenderInfo.getContent(),"text/html;charset=utf-8");

			//发送邮件;
			Transport.send(mailMessage);
			return true;
		} catch (MessagingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
	}
}

 

 

最后就是测试邮件发送:

public class EmailTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MailSenderInfo mailSenderInfo = new MailSenderInfo();
		mailSenderInfo.setUserName("myfirstemail@163.com");
		mailSenderInfo.setPassword("88888");
		mailSenderInfo.setEmailServiceHost("smtp.163.com");
		mailSenderInfo.setValidate(true);
		mailSenderInfo.setFromAddress("myfirstemail@163.com");
		mailSenderInfo.setToAddress("1127290783@126.com");
		mailSenderInfo.setSubject("第一封邮件");
		mailSenderInfo.setContent("first Email!");
		SimpleMailSender sender = new SimpleMailSender();
		boolean sendresult= sender.sendTextMail(mailSenderInfo);
		
		if(sendresult){
			System.out.println("邮件发送成功!");
		}else{
			System.out.println("邮件发送失败!");
		}
	}
}

 

 

 

 

 在测试时, 邮箱一定要设置开通smtp服务的, 像 126,163这些网易邮箱,是默认不开通..所以需要在设置->POP3/SMTP里面->把smtp服务勾选上..才可以。

 

还有一个就是,你的邮箱 用户名和 mail.smpt.host.地址要一致,.否则发不出去..

我整了好几个小时..才测试通过。所以今天特意写出来.. 希望大家不要遇到我同样的错误...少走弯路。

 

 

 

分享到:
评论

相关推荐

    JAVA发送邮件Demo

    本文将详细讲解如何使用Java发送邮件,基于提供的标题"JAVA发送邮件Demo"和描述,我们将快速入门并理解核心概念。 首先,JavaMail API是Java中用于处理邮件的库,它提供了发送、接收邮件的功能。要使用JavaMail,你...

    SendEmailTest.rar_java程序

    本示例“SendEmailTest.rar”提供了一个简单的Java程序,用于演示如何使用Java发送电子邮件。通过学习这个程序,我们可以掌握Java邮件API的基础知识。 JavaMail API是Java平台上的一个标准API,它允许程序员通过...

    javamail入门1--发送简单的文本邮件

    这个入门教程将带你了解如何使用 JavaMail 来发送简单的文本邮件。在开始之前,你需要确保已经添加了 JavaMail 相关的库,这里提到的 "lib" 文件可能包含了这些必要的 JAR 包。 首先,你需要引入 JavaMail 的核心库...

    Java高级应用和Struts的入门笔记

    - **发送Email**:`Java发送Email【传智播客崔希凡讲师笔记】.doc`将介绍如何使用JavaMail API发送电子邮件,包括设置SMTP服务器、添加附件等。 3. **数据库操作** - **三表的多对多增删改查思路**:`DAY15【三表...

    使用Maven构建简单的邮件发送示例项目

    本教程将带你通过使用Maven构建一个简单的邮件发送示例项目,这非常适合初学者理解和学习。 首先,我们需要了解Maven的基本概念。Maven是基于项目对象模型(Project Object Model,POM)的,它通过POM文件来管理...

    java图书管理系统

    邮件服务可能用到如email-20190305_这样的文件,这可能是一个处理邮件发送的类库或配置文件。在Java中,可以使用JavaMail API发送邮件,通知用户借阅状态、到期提醒等。配置文件可能包含SMTP服务器地址、端口、...

    Java发邮件例子Java Mail示例程序

    本教程将向你展示如何利用JavaMail API实现简单的邮件发送功能,非常适合初学者入门。 首先,我们需要引入JavaMail的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...

    java mail demo

    接下来,让我们详细了解一下如何创建一个简单的Java Mail发送邮件的示例: 1. 导入所需的Java Mail库: ```java import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; ``` 2. 配置...

    Java Servlet和JSP教程.docx

    以上内容仅是Java Servlet和JSP入门的基础知识,实际上,Servlet和JSP还涉及会话管理、过滤器、监听器、MVC设计模式、EL和JSTL等更多高级主题。通过不断学习和实践,开发者可以创建功能丰富的、高效的Web应用程序。

    SpringMVC入门很简单之数据绑定(下)

    在本篇中,我们将深入探讨SpringMVC框架中的数据绑定,这是Java开发中一个至关重要的概念,尤其是在构建Web应用程序时。SpringMVC是Spring框架的一部分,它为开发RESTful服务和传统的表单提交提供了强大的支持。数据...

    James+Javamail构建邮件服务

    - **邮件发送**:通过Javamail API可以轻松地构建邮件发送程序。这通常涉及创建`Session`对象,设置邮件属性(如发件人、收件人、主题和正文等),然后使用`Transport.send()`方法发送邮件。 - **邮件接收**:接收...

    基于Spring的邮件发送系统设计源码

    Spring邮件发送系统:基于Java构建,包含67个文件,包括60个XML配置文件、3个Java类文件、2个.gitignore文件、1个Idea项目文件...该项目是一个Spring email的最简单入门案例,用于演示如何使用Spring框架发送电子邮件。

    web 从入门到放弃笔记

    - Email: 电子邮件服务,用于发送和接收电子信件。 - Telnet: 远程登录服务,使用户能够通过网络登录远程计算机。 - FTP (File Transfer Protocol): 文件传输协议,用于在网络上进行文件的上传和下载。 - **目标*...

    netty+protobuf入门案例

    Protobuf 提供了一种定义数据结构的语言,通过编译器将这些结构转换为各种语言(如 Java、C++、Python)的类。这些类允许我们将数据序列化和反序列化,使得在网络中传输数据变得更加便捷和高效。 接下来,我们来看...

    JSP快速入门

    程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无...

    JSP入门基础教程-自学必备

    程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无...

    Spring Data JPA 入门例子极简代码

    通过上述步骤,你已经构建了一个简单的 Spring Data JPA 应用。运行应用,然后使用 Postman 或类似工具发送 HTTP 请求测试 CRUD 功能。 ### 8. 扩展功能 Spring Data JPA 还支持更多高级特性,如分页、排序、...

    jenkins使用入门

    其他插件如Email-ext用于发送电子邮件通知,Sonar插件用于代码质量管理。安装插件通常通过Jenkins的插件管理界面进行。 #### Jenkins安全控制 Jenkins支持多种安全控制机制,比如项目矩阵授权策略。这是一种安全...

Global site tag (gtag.js) - Google Analytics