利用java mail发送邮件(转)

JavaMail是SUN提供给开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发类库,支持常用的邮件协议,如SMTP、POP3、IMAP,开发人员使用JavaMail编写邮件程序时,无需考虑底层的通信细节(Socket),JavaMail也提供了能够创建出各种复杂MIME格式的邮件内容的API。使用JavaMail,我们可以实现类似OutLook、FoxMail的软件。虽然JavaMail(仅支持JDK4及以上)也是Java的API之一,但是却没有直接加入到JDK中,所以我们需要另行下载。另外,JavaMail依赖JAF(JavaBeans
Activation Framework),JAF在Java6之后已经合并到JDK中,而JDK5之前需要另外下载JAF的类库。下载地址如下:

https://java.net/projects/javamail/pages/Home#Download_JavaMail_1.5.2_Release

欢迎访问www.findspace.name来获取更多信息

利用这个api,之前写的那个抓取网站更新的工具就有了邮件通知管理员的功能啦~

其实只需要那个javax.mail.jar,把这个jar包导入到你的项目下面即可。

JavaMail包含两部分内容,一部分是JavaMail API,定义了一组平台无关、独立于通讯协议的邮件程序框架,该部分称为应用级接口,也就是供我们调用的部分,另一部分是service provider,该部分使用特定的协议语言来实现第一部分定义的抽象类和接口,这些协议包括:SMTP、NNTP、POP3、IMAP,如果让JavaMail与邮件服务器通信,就需要相应的协议支持,该部分称为服务提供者接口,也就是JavaMail自身需要的协议支持。在使用JavaMail时,通常我们只需将mail.jar放在classpath下使用,它包含了JavaMail
API部分和SUN自己实现的service provider部分。可能也有特殊的时候,我们应用程序中需要自己实现service provider部分,那我们只需要mailapi.jar。下面通过几个类来简单认识下JavaMail API:

javax.mail.Session:上下文环境信息,如服务器的主机名、端口号、协议名称等
javax.mail.Message:邮件模型,发送邮件和接收邮件的媒介,封装了邮件的信息,如发件人、收件人、邮件标题、邮件内容等
javax.mail.Transport:连接邮件SMTP服务器,发送邮件
javax.mail.Store:连接邮件POP3、IMAP服务器,收取邮件  

通过这些类,最终就可以实现收发邮件,一个发送邮件的简单示例:

public class JavaMailTest1 {
    public static void main(String[] args) throws MessagingException {
        Properties props = new Properties();
        // 开启debug调试
        props.setProperty("mail.debug", "true");
        // 发送服务器需要身份验证
        props.setProperty("mail.smtp.auth", "true");
        // 设置邮件服务器主机名
        props.setProperty("mail.host", "smtp.163.com");
        // 发送邮件协议名称
        props.setProperty("mail.transport.protocol", "smtp");

        // 设置环境信息
        Session session = Session.getInstance(props);

        // 创建邮件对象
        Message msg = new MimeMessage(session);
        msg.setSubject("JavaMail测试");
        // 设置邮件内容
        msg.setText("这是一封由JavaMail发送的邮件!");
        // 设置发件人
        msg.setFrom(new InternetAddress("[email protected]"));

        Transport transport = session.getTransport();
        // 连接邮件服务器
        transport.connect("java_mail_001", "javamail");
        // 发送邮件
        transport.sendMessage(msg, new Address[] {new InternetAddress("[email protected]")});
        // 关闭连接
        transport.close();
    }
}

最终运行后,邮件发送成功。由于我们开启了debug调试,在控制台可以看到JavaMail和服务器之间的交互信息记录,

创建Session对象时可能需要的属性详细信息如下:

Name Type Description
mail.debug boolean The initial debug mode. Default is false.
mail.from String The return email address of the current user, used by theInternetAddressmethodgetLocalAddress.
mail.mime.address.strict boolean The MimeMessage class uses the InternetAddress methodparseHeader to
parse headers in messages. This property controls the strict flag passed to theparseHeader method.
The default is true.
mail.host String The default host name of the mail server for both Stores and Transports. Used if themail.protocol.host property
isn’t set.
mail.store.protocol String Specifies the default message access protocol. The SessionmethodgetStore()returns
a Store object that implements this protocol. By default the first Store provider in the configuration files is returned.
mail.transport.protocol String Specifies the default message transport protocol. TheSessionmethodgetTransport() returns
a Transport object that implements this protocol. By default the first Transport provider in the configuration files is returned.
mail.user String The default user name to use when connecting to the mail server. Used if themail.protocol.user property
isn’t set.
mail.protocol.class String Specifies the fully qualified class name of the provider for the specified protocol. Used in cases where more than one provider for a
given protocol exists; this property can be used to specify which provider to use by default. The provider must still be listed in a configuration file.
mail.protocol.host String The host name of the mail server for the specified protocol. Overrides themail.host property.
mail.protocol.port int The port number of the mail server for the specified protocol. If not specified the protocol’s default port number is used.
mail.protocol.user String The user name to use when connecting to mail servers using the specified protocol. Overrides themail.user property.

本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17839983,转载请注明。

时间: 2024-10-11 11:24:07

利用java mail发送邮件(转)的相关文章

Java网络编程:利用Java mail包发送电子邮件

下面代码是利用Java mail包封装了一个发送邮件的类 import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Me

java mail发送邮件

import java.io.UnsupportedEncodingException;import java.util.Date;import java.util.Properties; import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.NoSuchProviderException;import javax.mail.

java mail发送邮件demo 代码

java mail发送邮件demo,引入mail.jar,运行测试发送ok[代码][Java]代码     01import java.util.Date;02import java.util.Properties;0304import javax.mail.Authenticator;05import javax.mail.Message;06import javax.mail.MessagingException;07import javax.mail.PasswordAuthenticat

Java mail发送邮件附件出现.eml文件夹

在使用JAVA MAIL发送邮件时,163邮箱和QQ邮箱收到PDF附件,格式错误如下图: 163邮箱: QQ邮箱: 经历了很长时间的研究和测试,错误原因为在邮件正文和邮件附件用的MimeBodyPart对象是同一个,进而导致上述现象,解决办法为正文是一个MimeBodyPart对象,一个附件是一个MimeBodyPart对象.正确代码如下: 原文地址:https://www.cnblogs.com/XH09/p/10981329.html

Java Mail 发送邮件(个人备份)

package net.guoguoda.admin.common.utils; import java.io.File; import java.io.UnsupportedEncodingException; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; i

使用Java Mail发送邮件

本笔记参考自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17839983 JavaMail是SUN提供给开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发类库,支持常用的邮件协议,如SMTP.POP3.IMAP,开发人员使用JavaMail编写邮件程序时,无需考虑底层的通信细节(Socket),JavaMail也提供了能够创建出各种复杂MIME格式的邮件内容的API.使用JavaMail,我们可以实现类似OutL

简单的java mail发送邮件实例

mail.jar ,commons-email-X.X.jar ,activation.jar ,log4j.jar  这四个jar,放进项目里 下载地址 http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eeplat-419426.html 该类实现了较完整的邮件发送功能,包括以HTML格式发送,添加附件和抄送人.下面是具体的代码: 先写个简单的mail对象 packag

Java Mail 发送邮件

通过SMTP协议, 编写客户端向邮件服务器提交发送邮件请求 package mail import javax.mail.internet.MimeMessage import java.util.Properties import javax.mail.Session import javax.mail.Message import javax.mail.Transport import java.util.Date import javax.mail.MessagingException f

使用java mail 发送邮件

1.关联jar包:   activation.jar   mail.jar 2.调用 @Test public void test1() { List<String> imageUrlList = Arrays.asList(new String[] { "src/美女1.jpg", "src/2.jpg", "src/2.jpg" }); List<String> attachmentUrlList = Arrays.a