/* 在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。 本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。 此篇仅介绍用javamail实现发送邮件功能,其中涉及smtp认证,邮件附件发送,及HTML内容邮件等。 其它有关多邮箱的实现,接收POP3邮件及IMAP等内容,将在后续文章中介绍。 如下程序需要:javamail,JAF包,j2ee.jar包含了上述两个包,建议大家安装J2SDKEE或直接拷贝j2ee.jar,将其添加到jbuilder的library中,或系统ClassPath中 */ package com.tntxia.mymail; import java.util.*; import javax.mail.*; import javax.mail.internet.*; import java.util.Date; import javax.activation.*; import java.io.*; public class sendMail { private MimeMessage mimeMsg; // MIME邮件对象 private Session session; // 邮件会话对象 private Properties props; // 系统属性 private boolean needAuth = false; // smtp是否需要认证 private String username = ""; // smtp认证用户名和密码 private String password = ""; private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象 /** * */ public sendMail() { // setSmtpHost(getConfig.mailHost);// 如果没有指定邮件服务器,就从getConfig类中获取 createMimeMessage(); } public sendMail(String smtp) { setSmtpHost(smtp); createMimeMessage(); } /** * * @param hostName * String */ public void setSmtpHost(String hostName) { System.out.println("设置系统属性:mail.smtp.host = " + hostName); if (props == null) props = System.getProperties(); // 获得系统属性对象 props.put("mail.smtp.host", hostName); // 设置SMTP主机 } /** * * @return boolean */ public boolean createMimeMessage() { try { System.out.println("准备获取邮件会话对象!"); session = Session.getDefaultInstance(props, null); // 获得邮件会话对象 } catch (Exception e) { System.err.println("获取邮件会话对象时发生错误!" + e); return false; } System.out.println("准备创建MIME邮件对象!"); try { mimeMsg = new MimeMessage(session); // 创建MIME邮件对象 mp = new MimeMultipart(); return true; } catch (Exception e) { System.err.println("创建MIME邮件对象失败!" + e); return false; } } /** * * @param need * boolean */ public void setNeedAuth(boolean need) { System.out.println("设置smtp身份认证:mail.smtp.auth = " + need); if (props == null) props = System.getProperties(); if (need) { props.put("mail.smtp.auth", "true"); } else { props.put("mail.smtp.auth", "false"); } } /** * * @param name * String * * @param pass * String */ public void setNamePass(String name, String pass) { username = name; password = pass; } /** * * @param mailSubject * String * * @return boolean */ public boolean setSubject(String mailSubject) { System.out.println("设置邮件主题!"); try { mimeMsg.setSubject(mailSubject); return true; } catch (Exception e) { System.err.println("设置邮件主题发生错误!"); return false; } } /** * * @param mailBody * String */ public boolean setBody(String mailBody) { try { BodyPart bp = new MimeBodyPart(); bp.setContent("" + mailBody, "text/html;charset=GB2312"); mp.addBodyPart(bp); return true; } catch (Exception e) { System.err.println("设置邮件正文时发生错误!" + e); return false; } } /** * * @param name * String * * @param pass * String */ public boolean addFileAffix(String filename) { System.out.println("增加邮件附件:" + filename); try { BodyPart bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(filename); bp.setDataHandler(new DataHandler(fileds)); bp.setFileName(fileds.getName()); mp.addBodyPart(bp); return true; } catch (Exception e) { System.err.println("增加邮件附件:" + filename + "发生错误!" + e); return false; } } /** * * @param name * String * * @param pass * String */ public boolean setFrom(String from) { System.out.println("设置发信人!"); try { mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人 return true; } catch (Exception e) { return false; } } /** * * @param name * String * * @param pass * String */ public boolean setTo(String to) { if (to == null) return false; try { mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); return true; } catch (Exception e) { return false; } } /** * * @param name * String * * @param pass * String */ public boolean setCopyTo(String copyto) { if (copyto == null) return false; try { mimeMsg.setRecipients(Message.RecipientType.CC, (Address[]) InternetAddress.parse(copyto)); return true; } catch (Exception e) { return false; } } /** * * @param name * String * * @param pass * String */ public boolean sendout() { try { mimeMsg.setContent(mp); mimeMsg.saveChanges(); System.out.println("正在发送邮件...."); Session mailSession = Session.getInstance(props, null); Transport transport = mailSession.getTransport("smtp"); transport.connect((String) props.get("mail.smtp.host"), username, password); transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO)); // transport.send(mimeMsg); System.out.println("发送邮件成功!"); transport.close(); return true; } catch (Exception e) { System.err.println("邮件发送失败!" + e); return false; } } /** * * Just do it as this */ public static void main(String[] args) { String mailbody = "" + "csdn"; sendMail themail = new sendMail("smtp.163.com"); themail.setNeedAuth(true); if (themail.setSubject("标题") == false) return; if (themail.setBody(mailbody) == false) return; if (themail.setTo("tntxia@163.com") == false) return; if (themail.setFrom("tntxia@163.com") == false) return; // if (themail.addFileAffix("c:\\boot.ini") == false) // return; themail.setNamePass("********", "*********"); // 账号密码 if (themail.sendout() == false) return; } }
相关推荐
下面将详细讲解如何使用Java实现这一功能。 1. **SMTP服务和JavaMail API** SMTP是互联网标准,用于发送电子邮件。163邮箱提供了SMTP服务器地址,开发者可以利用JavaMail API与这个服务器通信。JavaMail API是一个...
在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...
本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...
本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...
在发送Outlook邮件时,我们通常不是直接与Outlook交互,而是使用SMTP(Simple Mail Transfer Protocol)服务器,Outlook作为邮件客户端会连接到这个服务器来发送和接收邮件。 要使用JavaMail API,我们需要添加以下...
### Java实现邮件发送 本文将基于提供的描述及部分代码片段,详细介绍如何利用Java实现邮件发送功能。本教程涉及的关键知识点包括:配置邮件服务器、设置发件人与收件人信息、处理邮件验证以及附件的添加。 #### ...
本教程将详细讲解如何使用Java实现发送邮件,包括发送图片和附件。 首先,你需要在项目中引入Java Mail API的相关依赖。通常我们使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
- 对于`mailFor163`,这通常涉及到使用网易163邮箱作为邮件服务器。163邮箱支持SMTP服务,你需要知道SMTP服务器地址(如smtp.163.com)和端口号(通常是25或465,SSL加密时为465)。 - 对于`mailForSina`,同理,...
本文将深入探讨如何使用JavaMail API在Java应用程序中实现发送邮件的功能,同时也会涉及验证码验证以及网页版邮件发送的实现。 首先,要发送邮件,我们需要引入JavaMail的相关库。通常,这包括`javax.mail`和`javax...
### Java实现发送邮件知识点详解 #### 一、引言 电子邮件是互联网中最为常见的通信方式之一,被广泛应用于用户激活、密码重置、营销推广等多个场景。为了满足自动化的需求,通常采用程序化的方式进行邮件的发送。...
这个"java实现发送邮件jar文件"是JavaMail的一个实现,封装了SMTP(简单邮件传输协议)和其他相关协议,使得开发者能够轻松地集成邮件功能到他们的项目中。 在Java中实现邮件发送,首先需要引入JavaMail的相关依赖...
本文将详细讲解如何使用Java实现发送邮件的功能,并基于给出的描述和标签,我们将深入探讨相关的JavaMail API及其使用方法。 首先,JavaMail API是Java平台上的一个开源库,它提供了一系列接口和类,用于处理邮件的...
java发送邮件工具类,用于java程序实现邮件的发送功能
本教程将详细介绍如何使用Java实现邮件发送功能,同时提供了一个Jar包和demo源码供参考。 首先,我们需要理解JavaMail API,这是一个Java平台上的邮件处理库,它提供了发送和接收电子邮件的能力。JavaMail API 包含...
使用JavaMailSender包,结合Java8和springboot框架,使用公司阿里企业邮箱免费发送邮件,因为公司邮件不限数量,所以邮件测试发送无上限。对于QQ或163邮箱账户可能需要开通SMTP服务,具体信息请百度教程,有问题可以...
要实现“Java实现发送邮件内容+附件”,我们需要理解SMTP(Simple Mail Transfer Protocol)协议,并使用JavaMail API来创建和发送电子邮件。以下是一份详细的步骤和知识点解释: 1. **JavaMail API**:JavaMail ...
本文将深入讲解如何使用Java实现发送邮件,并通过激活码激活账户的功能。 首先,我们需要理解JavaMail API是Java用来处理邮件的核心库。它提供了丰富的功能,包括创建、发送和接收邮件。在项目中,我们通常会引入`...
在本案例中,我们将关注如何使用Java Socket来实现SMTP(Simple Mail Transfer Protocol)邮件发送,并支持SSL(Secure Sockets Layer)和TLS(Transport Layer Security)安全协议。 SMTP是一种互联网标准,用于在...