引自http://fantlam.blogbus.com
从今天开始研究关于java邮件开发以及关于邮件服务器的相关讨论,内容不会很深,只是简单的运用,不过我会写的比较特别,当中会涉及linux平台的服务器设置,以及一些直接命令模式发送邮件的一些东西
首先和邮件相关的重要东西就是2个协议,2个比较常见的协议--SMTP和POP3,不知道可以自己上网搜索,我这里不重复。一个发一个取,TCP/IP里有讲到。这突然让我想到我学的专业课,老师讲的很细,只是我都没时间去听,当时也只是看过课本,通过这几天的研究,也终于悟出了一些道理来,算是初步了解吧,我将要说的代码在实际运用中也可以参考到的。
接下来先来看看利用javamail来发送一封邮件的代码(这里代码我不写全了,因为贴起来总是太长,超过文章长度限制了,可以复制到eclipse这些工具,然后导入相应的包)
注意用javamai开发要引入相应的包。
public class JavaMail1 {
public static void main(String args[]) throws Exception{
String tto="fantlam@163.com";//收件人地址
String ttitle="这是邮件的标题";
String tcontent="这是邮件的内容";
Properties props=new Properties();
props.setProperty("mail.smtp.auth","true");//声明要通过身份验证
/** 这一句要加 需要通过验证 不然会抛异常
553 authentication is required,smtp2,DMmowLC7dlALdstJLBc2Hw--.24884S21238070795
com.sun.mail.smtp.SMTPSendFailedException: 553 authentication isrequired,smtp2,DMmowLC7dlALdstJLBc2Hw--.24884S2 1238070795
/** 简单看一下Properties类
java.util 类 Properties
java.lang.Object --java.util.Dictionary<K,V>
--java.util.Hashtable<Object,Object>
--java.util.Properties
类Properties setProperty(String key, String value)调用 Hashtable 的方法 put。 */
Session s=Session.getInstance(props);//根据属性新建一个邮件会话
s.setDebug(true);//可以看到后台信息
MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象
//设置邮件
InternetAddress from=new InternetAddress("fantlam@126.com ");
message.setFrom(from);//设置发件人
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);//设置收件人
message.setRecipients(RecipientType.TO,InternetAddress.parse("fantlam@163.com,fantlam@126.com"));// 如果是多个收信人
message.setSubject(ttitle);//设置主题
message.setText(tcontent);//设置信件内容
message.setSentDate(new Date());//设置发信时间
//发送邮件
message.saveChanges();//存储邮件信息
Transport transport=s.getTransport("smtp");
transport.connect("smtp.126.com","fantlam@126.com","123456");//以smtp方式登录邮箱 注意这一步需要你的用户名和密码,务必正确,才能正常发送
transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址
transport.close();
/**有时候会发送不成,有时候是用户名密码都没错,但用户被锁定了,大概都是新注册的用户才会出现,网易的邮箱比较严格,可以用新浪或搜狐的测试
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.126.com", port 25, isSSL false
220 126.com Anti-spam GT for Coremail System (126com[20081010])
DEBUG SMTP: connected to host "smtp.126.com", port: 25
EHLO 20090124-hasee
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 dXNlcm5hbWU6
ZmFudGxhbUAxMjYuY29t
334 UGFzc3dvcmQ6
ZmFudGxhbTEyMw==
550 用户被锁定
Exception in thread "main" javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:306)
at javax.mail.Service.connect(Service.java:156)
at org.fantlam.JavaMail1.main(JavaMail1.java:53)
代码中设置了s.setDebug(true);可以看到后台输出的信息。这些跟邮件操作命令有关,接下来的文章将会涉及到。
分享到:
相关推荐
这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、HTML和包含附件的邮件,以及在实际应用中需要注意的配置步骤。 1. *...
在这个"06_传智播客张孝祥java邮件开发_编写一个JavaMail发送邮件的程序"教程中,我们将深入学习如何利用JavaMail API创建一个能够发送邮件的Java程序。 首先,要发送邮件,我们需要设置一些基本的配置,例如SMTP...
下面是一个简单的JavaMail发送邮件的步骤: 1. **导入必要的库**:首先,在项目中导入`mail.jar`和`activation.jar`,确保编译和运行时能够访问到这些库。 2. **配置邮件会话**:创建一个`Properties`对象,设置...
1. **发送邮件**: - 配置 JavaMail Session:这通常涉及到设置 SMTP 服务器的属性,如主机名、端口号、用户名和密码。 - 创建 MimeMessage 对象:这是邮件的核心,包含所有邮件内容,如主题、正文和附件。 - ...
下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...
学习如何使用JavaMail API是Java邮件开发的核心部分,包括设置邮件服务器参数、创建和配置Message对象、发送和接收邮件等。 3. **MIME类型**:MIME(多用途互联网邮件扩展)定义了邮件可以携带的多种类型的数据,如...
在这个例子中,我们将详细探讨如何使用JavaMail发送邮件,包括SMTP认证、添加附件以及发送HTML内容的邮件。 首先,为了使用JavaMail API,我们需要引入相应的库。在这个例子中,`javamail`和`JAF`(JavaBeans ...
本文将深入探讨Java邮件开发的相关知识点,包括JavaMail API的基本概念、核心组件、配置过程以及源代码分析。 JavaMail API是Java平台上的一个标准API,它允许开发者通过编程方式发送和接收电子邮件。这个API包含了...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对...
通过以上步骤,你就可以使用JavaMail API在Java应用程序中发送邮件了。提供的源码应该包含了完整的实现,你可以根据自己的需求进行修改和调试。记得在实际应用中,为了安全起见,应避免在代码中硬编码敏感信息,如...
Java发送邮件是软件开发中常见的需求,特别是在自动化通知、用户验证和客户服务等方面。在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下...
描述中提到的“java发送邮件所需要的包”即是指JavaMail API,它包含了一系列的类和接口,例如`javax.mail.Session`,它是邮件会话对象,用于配置邮件服务器的连接参数;`javax.mail.Transport`,用于发送邮件;`...
首先,JavaMail API是Java邮件开发的基础,它提供了一系列的接口和类来处理SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件服务。JavaMail API的主要组件包括`javax.mail.Session`、...
JavaMail API是Java平台上用于处理电子邮件的一套强大的库,它为开发者提供了丰富的功能,使得在应用程序中发送和接收邮件变得简单。本文将深入探讨JavaMail API的各个方面,帮助你理解和掌握这一关键工具。 首先,...
首先,Java邮件开发主要依赖于JavaMail API,这是一个开源库,提供了与各种邮件服务器交互的接口。要发送邮件,你需要导入`javax.mail`和`javax.mail.internet`这两个核心包。以下是一个简单的邮件发送示例: ```...
### JavaMail邮件开发详解 #### 一、JavaMail API简介 JavaMail API 是一个用于读取、撰写和发送电子邮件的强大工具包。它主要用于构建邮件用户代理程序(Mail User Agent,简称 MUA),这类程序通常包括像 Eudora...
总之,Java邮件开发涉及邮件协议、服务器交互、身份验证以及JavaMail API的使用等多个方面,理解和掌握这些知识对于开发能够发送和接收邮件的应用至关重要。通过张孝祥的教程,开发者可以更深入地学习这些技术细节,...
1. **JavaMail API简介**:JavaMail API是Java平台上的标准邮件服务接口,它提供了一系列类和接口,允许开发人员与各种邮件系统进行交互,包括SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息...
总之,"JavaMail(JAVA邮件服务器)API详解"这个资源将提供一个全面的指南,帮助Java开发者充分利用JavaMail API来构建高效、可靠的邮件系统,无论是简单的日志报告还是复杂的邮件应用,都能得心应手。通过深入学习和...