`

javaMail学习(三)——使用javaMail给易邮邮账户发简单邮件

阅读更多

没什么可说的,直接上代码吧:

package com.wjl.mail.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 邮件发送的工具类
 * 使用eyoumailserver,内部账户发邮件
 */
/*
javax.mail.Session:上下文环境信息,如服务器的主机名、端口号、协议名称等  
javax.mail.Message:邮件模型,发送邮件和接收邮件的媒介,封装了邮件的信息,如发件人、收件人、邮件标题、邮件内容等  
javax.mail.Transport:连接邮件SMTP服务器,发送邮件  
javax.mail.Store:连接邮件POP3、IMAP服务器,收取邮件
*/
public class MailUtils2 {
	private static String userName = "user03@wjl.com";//发送邮件的人
	private static String password = "123456";//发送邮件的账户的密码
	private static String userName2 = "user04@wjl.com";//接收邮件的人
	private static String port = "25";//465、587
	/**
	 * 该方法用来发送邮件
	 * @param to:给谁发邮件
	 * **/
	public static void sendMain(String to) throws AddressException, MessagingException{
		//1、创建连接对象,连接到邮箱服务器
		Properties props = new Properties();
		//开启debug调试  
        props.setProperty("mail.debug", "true");  
        //stmp服务器需要进行身份验证,也就是有户名和密码的校验,这样才能通过验证
        props.setProperty("mail.smtp.auth", "true"); 
        //发送邮件协议名称  
        props.setProperty("mail.transport.protocol", "smtp");  
        //设置邮件服务器主机名  
        props.setProperty("mail.host", "127.0.0.1");//本地
        //设端口号(该配置可写可不写)
        props.setProperty("mail.smtp.port", port);
		
		//Authenticator:认证信息
		Session session = Session.getInstance(props, new Authenticator(){
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(userName,password);//使用它给其他账户发邮件
			}
		});
		
		//2、创建邮件对象
		Message message = new MimeMessage(session);
		//2.1设置发件人
		message.setFrom(new InternetAddress(userName));
		//2、2设置收件人
		message.setRecipient(RecipientType.TO, new InternetAddress(to));
		//2.3邮件的主题
		message.setSubject("测试发消息");
		//2.4邮件的正文(即邮件的内容)
		message.setContent("测试邮件:来自user03@wjl.com的邮件","text/html;charset=utf-8");
		
		//3.发送邮件
		Transport trans = session.getTransport();
		//连接邮件服务器
        trans.connect(userName, password);  
		//发送邮件
        trans.sendMessage(message, message.getAllRecipients());  
        //关闭连接
        trans.close();
        
        //Transport.send(message);(两种方式都可以)
		
		System.out.println("发送成功");
	}
	
	public static void main(String[] args) {
		try {
			sendMain(userName2);
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}
}

执行成功之后,使用Foxmail查看邮件。

说明邮件发送成功了。

 

可能遇到的问题

执行代码时报错:java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream

原因是jar包版本不统一,javaMail与Java EE 5 Libraries/javaee.jar/mail里的包有东西冲突。

解决办法:将Java EE 5 Libraries换成Java EE 6 Libraries

Libraries替换:

选中项目右击---->Properties---->Java Build Path---->Add Library,如图:

选默认的“MyEclipse Libraries” 。

勾选“Java EE 6 Libraries” 。然后Finish。

此时Libraries中有两个Libraries,一个5一个6,将Java EE 5 Libraries删除,然后确定。

再执行代码,就不会再报错啦。

  • 大小: 75.8 KB
  • 大小: 65 KB
  • 大小: 47 KB
  • 大小: 58.9 KB
分享到:
评论

相关推荐

    javamail发送邮件

    3. **构建邮件消息**:使用`MimeMessage`类创建一个邮件消息,并设置发件人、收件人、主题和内容。为了创建可点击的链接,我们可以使用HTML格式的邮件内容。例如: ```java MimeMessage message = new ...

    JavaWeb培训讲义8

    在本讲义中,我们将详细介绍几种常用的E-mail协议,包括SMTP(简单邮件传输协议)、POP3(邮局协议第三版)以及IMAP(Internet消息访问协议)。同时,我们还会介绍如何利用JavaMail API来构建邮件相关的应用程序。 ...

    SSH框架实现发送电子邮件的两种方法

    ### SSH框架实现发送电子邮件的两种方法 #### 一、引言 在软件开发过程中,电子邮件服务经常被用来作为用户通知、账号验证等场景中的一个重要工具。Spring框架由于其强大的功能和灵活性,在Java企业级应用中得到了...

    mail.jar 用于设置邮箱发送的的java jar包

    《Java邮件发送jar包——mail.jar的深度解析与应用》 在Java开发中,邮件服务的集成是一项常见的功能,例如用户注册时的账户激活、系统通知等。mail.jar作为一个专门处理邮件发送的Java库,是JavaMail API的核心...

    Android-android的Email发送验证码方案后台服务使用网易163邮箱

    然后,我们可以使用JavaMail API或其轻量级库——Android JavaMail API(Android-JavaMail-API)来实现邮件的发送。由于Android系统对JavaMail API的支持有限,因此通常推荐使用Android-JavaMail-API。该库简化了...

    collager:此应用程序下载 Instagram 用户的近期照片并从中创建简单的拼贴画。 您可以共享它(或发送到电子邮件)。 PS 所有拼贴都保存在文件夹 PicturesCollager 中

    《使用Java创建Instagram照片拼贴应用——探索"Collager"》 "Collager"是一款巧妙的应用程序,专门设计用于从Instagram平台下载用户最近的照片,并利用这些照片生成精美的拼贴画。这款应用不仅简单易用,而且允许...

    毕业论文jsp2150宠物交易系统ssh.doc

    【毕业论文——基于JAVAEE的宠物交易系统设计与实现】 1. 项目概述 本文将详细介绍一个基于JAVAEE平台的宠物交易系统的设计与实现过程。该系统旨在为宠物爱好者提供一个安全、便捷的在线交易平台,以促进宠物的合法...

    尚硅谷教学视频

    - **尚硅谷Java基础实战——Bank项目**:通过具体的银行系统项目实践来巩固Java基础知识,包括但不限于账户管理、存款、取款等功能。 #### 2. 数据库技术 - **Oracle、SQL、PL/SQL视频教程**:这部分内容主要介绍...

    OpenDating-开源

    mail.jar 文件包含了 JavaMail API,用于处理电子邮件的发送和接收。Open Dating 可能利用此功能来实现注册验证邮件或通知服务,让用户在约会过程中保持沟通。 5. **JCaptcha**: jcaptcha-all-1.0-RC2.0.1.jar ...

Global site tag (gtag.js) - Google Analytics