`
ipioneer
  • 浏览: 47651 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaMail的使用之邮件发送

阅读更多

对于JavaMail,最基础的功能就是邮件的发送和接收,在这里,我先讲一讲邮件的发送。

在写具体的程序前,先讲一些概念。1.邮件的发送:如果你的邮件地址是a@host.com,而你要用这个邮箱发送一封邮件到to@tohost.com,这个发送过程是怎样的呢,你以为是先连接到tohost.com这服务器上,然后把邮件发送出去吗?其实不然。最初,你需要连接到服务器host.com上,当然这个连接可能需要认证,然后是发送邮件到服务器host.com上,关闭连接。在host.com上,你所发送的邮件进入发送队列中,轮到你要发送的邮件时,host.com主机再联系tohost.com,将邮件传输到服务器tohost.com上。2.一些垃圾邮件的发送:在垃圾邮件中,可能大部分的发件人的地址都是假的,这是怎么回事呢?实际上在发送这些垃圾邮件的时候,这里的host.com有些特别,可能host.com不需要对用户进行认证,也可能发送垃圾邮件的人本来就控制着服务器host.com,然后控制着host.com向其他服务器,如tohost.com,发送邮件,而发送邮件的内容可以被控制,发件人的地址就可以随便填写。

发送邮件主要包括3个部分:创建连接,创建邮件体,发送邮件

JavaMail中,是使用会话(Session)来管理连接的。创建一个连接,就需要创建一个会话。在会话中,有两个重要的因素,一是会话的属性,二是会话的认证。在我们使用Hotmail等邮件工具的时候,就要设置”SMTP服务器身份验证,也就是这里的会话的认证。

 

 

首先,创建一个连接属性。

Properties props = new Properties();

props.put("mail.smtp.host","smtp.126.com"); //设置smtp的服务器地址是smtp.126.com

props.put("mail.smtp.auth","true");          //设置smtp服务器要身份验证。

 

 

在创建一个身份验证。身份验证稍微复杂一点,要创建一个Authenticator的子类,并重载getPasswordAuthentication()方法,代码如下:

class PopupAuthenticator extends Authenticator {

    public PasswordAuthentication getPasswordAuthentication() {

        String username = "cqhcp"; //126邮箱登录帐号

        String pwd = "12345"; //登录密码

        return new PasswordAuthentication(username, pwd);

    }

}

创建身份验证的实例:

PopupAuthenticator auth = new PopupAuthenticator();

 

创建会话: 关于会话的创建,有两种方法,具体请参看后续的文章,这里只简单使用一种。

Session session = Session.getInstance(props, auth);

 

 

定义邮件地址:

//发送人地址

Address addressFrom = new InternetAddress("cqhcp@126.com", "George Bush");

//收件人地址

Address addressTo = new InternetAddress("webmaster@javazy.com", "George Bush");

//抄送地址

Address addressCopy = new InternetAddress("haocongping@gmail.com", "George Bush");

 

 

创建邮件体:

message.setContent("Hello", "text/plain");//或者使用message.setText("Hello");更详细的信息请参看后续文章.

message.setSubject("Title");

message.setFrom(addressFrom);

message.addRecipient(Message.RecipientType.TO,addressTo);

message.addRecipient(Message.RecipientType.CC,addressCopy);

message.saveChanges();

 

 

发送邮件的过程:

Transport transport = session.getTransport("smtp");//创建连接

transport.connect("smtp.126.com", "cqhcp", "12345");//连接服务器

transport.send(message);//发送信息

transport.close();//关闭连接

 

 

整体程序的代码如下:

class PopupAuthenticator extends Authenticator {

    public PasswordAuthentication getPasswordAuthentication() {

        String username = "cqhcp"; //163邮箱登录帐号

        String pwd = "12345"; //登录密码

        return new PasswordAuthentication(username, pwd);

    }

}

 

 

Properties props = new Properties();

props.put("mail.smtp.host","smtp.126.com");

props.put("mail.smtp.auth","true");

PopupAuthenticator auth = new PopupAuthenticator();

Session session = Session.getInstance(props, auth);

MimeMessage message = new MimeMessage(session);

           

Address addressFrom = new InternetAddress("cqhcp@126.com", "George Bush");

Address addressTo = new InternetAddress("webmaster@javazy.com", "George Bush");

Address addressCopy = new InternetAddress("haocongping@gmail.com", "George Bush");

 

message.setContent("Hello", "text/plain");//或者使用message.setText("Hello");

message.setSubject("Title");

message.setFrom(addressFrom);

message.addRecipient(Message.RecipientType.TO,addressTo);

message.addRecipient(Message.RecipientType.CC,addressCopy);

message.saveChanges();

 

Transport transport = session.getTransport("smtp");

transport.connect("smtp.126.com", "cqhcp", "12345");

transport.send(message);

transport.close();

分享到:
评论

相关推荐

    使用JAVAMail代发邮件

    这个类称为 MailInfo,包含了邮件的各种信息,例如邮件服务器的主机名和端口号、邮件发送者的地址、邮件接收者的地址、邮件主题、邮件内容、邮件附件等。 在 MailInfo 类中,我们定义了多个成员变量,用于存储邮件...

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将详细探讨这些问题的原因及相应的解决方案。 ##...

    JavaMail发送邮件的例子

    2. `javax.mail.Transport`:用于实际的邮件发送,与邮件服务器进行通信。 3. `javax.mail.Message`:表示一个邮件对象,包含邮件的所有信息,如发件人、收件人、主题、正文等。 4. `javax.mail.internet....

    基于JavaMail的Java邮件发送-附源码

    通过以上步骤,你就可以使用JavaMail API在Java应用程序中发送邮件了。提供的源码应该包含了完整的实现,你可以根据自己的需求进行修改和调试。记得在实际应用中,为了安全起见,应避免在代码中硬编码敏感信息,如...

    常规JavaMail 邮件发送实用类

    "常规JavaMail 邮件发送实用类"标题所指的,通常是一个自定义的Java类,封装了JavaMail API的基本操作,使得邮件发送变得更加简单和便捷。这类实用类一般包含配置SMTP服务器、设置邮件内容、添加附件等功能。 ...

    使用javaMail发送邮件

    在本篇文章中,我们将深入探讨如何使用JavaMail API来实现邮件的发送功能。 首先,我们需要引入JavaMail所需的依赖库。在提供的文件列表中,我们看到有以下jar文件: 1. mail.jar:这是JavaMail的核心库,包含了...

    使用JavaMail创建邮件和发送邮件

    例如,`Session`类用于配置邮件服务器的连接属性,如主机名(mail.host)和协议(mail.transport.protocol),并管理邮件发送过程。`Properties`类用于存储这些配置属性。`Transport`类负责实际的邮件发送,而`...

    使用JavaMail实现发送邮件

    本篇将深入探讨如何使用JavaMail实现发送邮件,以及相关的源码分析。 首先,我们需要了解JavaMail的基本组件。`javax.mail`库主要包含以下关键接口和类: 1. `Session`:这是JavaMail的核心,代表与邮件服务器的...

    JavaMail发送邮件(文本、html、附件)

    JavaMail是一种广泛使用的Java库,用于在应用程序中发送电子邮件。这个标题"JavaMail发送...同时,对于企业级应用,通常会使用邮件服务提供商如SendGrid、Mailgun等,它们提供了更稳定、安全且易于管理的邮件发送服务。

    javaMail实现发送邮件的demo

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了一组 API,使得开发者可以方便地在 Java 应用...请确保遵循你的邮件服务提供商的政策,并注意不要滥用邮件发送服务,以免被标记为垃圾邮件。

    如何用javamail定时发送邮件

    2. **创建邮件发送函数**: 创建一个方法来使用 JavaMail 发送邮件。这通常包括配置 SMTP 服务器信息,创建 `Session` 对象,以及构建 `MimeMessage` 实例。 ```java import javax.mail.*; import javax.mail....

    javamail实现邮箱与邮箱发送邮件

    本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送邮件的流程。 首先,确保你的项目中已经包含了JavaMail所需的依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,如果你...

    javamail 回执邮件资料

    接下来,让我们深入探讨如何使用 JavaMail 发送和接收邮件。 1. **发送邮件**: - 配置 JavaMail Session:这通常涉及到设置 SMTP 服务器的属性,如主机名、端口号、用户名和密码。 - 创建 MimeMessage 对象:这...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    这涉及到JavaMail API的使用,如`Session`对象用于配置邮件服务器连接参数,`Message`对象代表一封邮件,`Transport`类则负责实际的邮件发送操作。收邮件时,会通过`Store`对象连接到邮件服务器,获取`Folder`并读取...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    最后,使用 `Transport.send()` 方法将邮件发送出去。 接收邮件时,我们通常使用 IMAP 协议,因为它支持离线模式,并且可以管理邮箱中的邮件状态,比如未读或已读。创建 `Store` 对象后,通过 `getStore("imap")` ...

    用javaMail发送邮件

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个功能通常涉及到SMTP(简单邮件...在使用JavaMail时,了解并掌握这些基础知识是至关重要的,可以帮助开发者构建稳定、可靠的邮件发送功能。

    javamail发送邮件.zip

    这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...

    javamail发送html邮件

    邮件发送类 ```java public class SendMail { private String smtp = "XXX.XXX.com"; private String sendEmail = "XXX@XXX.com"; private String sendEmailPw = "XXX"; private String toEmail = "XXX@XXX....

    利用javamail api实现的邮件发送类

    以下是一个基于JavaMail API 实现邮件发送的类的基本结构和关键知识点: 1. **导入必要的库** 首先,我们需要导入JavaMail API 的相关jar包,如`javax.mail` 和 `javax.mail.internet` 包。在现代项目中,这些依赖...

    关于用javamail发送邮件时,由于邮件服务器要SSL,解决办法

    在使用JavaMail进行邮件发送时,如果邮件服务器配置了SSL/TLS,我们需要在代码中启用相应的安全设置。 在`SendMail.java`中,我们需要设置以下关键参数: 1. `Properties props`:这是一个属性对象,用来存储连接...

Global site tag (gtag.js) - Google Analytics