`
Tiwen
  • 浏览: 85579 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JAVAMAIL 1.4身份验证

阅读更多

今天 突然想对现有的工程增加邮件发送功能,上网找了一些资料,结果很纳闷,邮件在发送的过程中发件人地址这里频繁的报错,没有任何验证的代码存在,试想一下实际情况,不可能我平时写什么发件人就可以发送过去了吧。后来在网上又找了些JAVA验证这一类资料,可惜,可能版本升级太快,这些方法已经无法在JAVAMAIL 1.4版里用到了,于是我在官方下了API文档,找到了这样一个方法

public static Session getInstance(java.util.Properties props,                                  Authenticator authenticator)
Get a new Session object.

每次新建会话时,我们都应该在这里填入验证明信息,让我们看看这个方法的第二个参数

public abstract class Authenticator  extends java.lang.Object

这个类是抽象类,但是API文档里没有给出这个类的继承类。OK,让我们自己去继承它好了

 static class SmtpAuth extends javax.mail.Authenticator {
  private String user,password;

  public void getuserinfo(String getuser,String getpassword){ 
    user = getuser;
    password = getpassword;
  }
  protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
      return new javax.mail.PasswordAuthentication(user,password);
  }
 }

因为我图方便,我把SmtpAuth 设置成为静态内部类,看看Authenticator 的这个方法

protected  PasswordAuthentication getPasswordAuthentication()
          Called when password authentication is needed.

这就是当需要密码验证的时候此方法被呼叫,好了,返回一个PasswordAuthentication类。查出他的构造函数

PasswordAuthentication(java.lang.String userName, java.lang.String password)
          Initialize a new PasswordAuthentication

于是我们可以设计username和password成员了。。于是整个验证细节也就明了拉!下面是我设计的一个简单的

 

import java.util.Date;
import java.util.Properties;

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


public class Mail {
 static class SmtpAuth extends javax.mail.Authenticator {
  private String user,password;

  public void getuserinfo(String getuser,String getpassword){
  user = getuser;
  password = getpassword;
  }
  protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
  return new javax.mail.PasswordAuthentication(user,password);
  }
 }
 /**
  * @param args
  * @throws MessagingException
  * @throws AddressException
  */
 @SuppressWarnings("static-access")
 public static void main(String[] args) throws AddressException, MessagingException {
  // TODO 自动生成方法存根
  Properties props = new Properties();
  
  Session sendMailSession;
  
  Transport transport;
  
  SmtpAuth sa = new SmtpAuth();
  
  sa.getuserinfo("tw", "1234");
  
  sendMailSession = Session.getDefaultInstance(props, sa);
  
  transport = sendMailSession.getTransport("smtp");
  
  transport.connect("134.98.83.32","tw", "1234");
  
  props.put("mail.smtp.host", "134.98.83.32");
  
  props.put("mail.smtp.auth", "true");
  
  Message newMessage = new MimeMessage(sendMailSession);
  
  newMessage.setFrom(new InternetAddress("tw@zjdw.com"));
  
  newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("tw@zjdw.com"));
  
  newMessage.setSubject("hello world");
  
  newMessage.setSentDate(new Date());
  
  newMessage.setText("这是一个测试的例子");
  
  transport.send(newMessage);
 }

}

 

OK。验证成功!



分享到:
评论

相关推荐

    最新javamail1.4,开发mail程序的类库集

    开发者可以通过配置服务器地址、端口、用户名和密码来实现身份验证。 2. **POP3(Post Office Protocol version 3)**: POP3 用于从邮件服务器下载邮件。JavaMail 提供了 `com.sun.mail.pop3` 包,其中包含 `POP3...

    javamail-1.4.7.7z

    4. **认证机制**:在处理需要身份验证的邮件服务器时,JavaMail 支持包括SMTP AUTH在内的多种认证方式,如简单的用户名和密码、NTLM或OAuth2。 5. **会话和属性**:JavaMail 中的`Session`对象是所有邮件操作的基础...

    javamail-1_4.zip

    3. **身份验证和安全**:JavaMail支持SSL和TLS加密,确保在不安全的网络上安全地传输敏感信息。 4. **会话和属性**:使用`Session`对象,开发者可以配置邮件服务器的连接参数,如用户名、密码、端口号等。`...

    JavaMail完整JAR包

    此外,对于需要身份验证的邮件服务器,JavaMail可以通过提供用户名和密码来实现。 7. **邮件附件**: - `Multipart` 类用于创建包含多个部分的邮件,比如文本、HTML和附件。`MimeBodyPart` 和 `MimeMultipart` 类...

    comm email 1.4+mail1.4

    Apache Commons Email库为Java开发者提供了发送电子邮件的高级API,支持HTML邮件、多部分消息、附件、SMTP身份验证、SSL/TLS连接等。版本1.4是这个库的一个稳定版本,它包含了之前版本的改进和修复,使得邮件发送...

    利用javamail发送邮件

    然后通过`Session.getInstance()`方法创建邮件会话,可以指定身份验证信息。 ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.example.com"); props.put("mail.smtp.port", ...

    JavaMail常见问题.doc

    在处理Microsoft Exchange服务器时,确保正确设置服务器的身份验证方式和端口。 总的来说,JavaMail API是Java开发者处理电子邮件的强大工具,涵盖了邮件通信的各个方面,但使用时需要对其工作原理和相关协议有深入...

    JavaMail技术研究

    例如,设置 SMTP 主机名和是否需要身份验证。 ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.126.com"); props.put("mail.smtp.auth", "true"); ``` #### 1.3 创建认证器 如果...

    javamail 实例

    同时,`Authenticator` 类用于处理身份验证,可以自定义认证策略。此外,JavaMail 还提供了异步发送邮件的支持,以及与现代邮件服务提供商(如 Gmail、Outlook)集成的能力。 总之,JavaMail 是一个强大且灵活的库...

    邮件发送--commons-email-1.4.jar

    4. **认证支持**:对于需要身份验证的SMTP服务器,Apache Commons Email支持用户名和密码的传递,以及使用JavaMail API的认证机制。 5. **易于使用**:通过简单的API调用,开发者可以快速设置邮件的发件人、收件人...

    j2ee Api v1.4 英文版

    10. **Java Authentication and Authorization Service (JAAS)**: 提供了一种机制来管理和验证用户身份,以及授权用户访问特定资源。 11. **Java RMI (Remote Method Invocation)**: 支持Java对象间的远程调用,是...

    J2EETutorial.pdf (The J2EE™ 1.4 Tutorial)

    8. **Java Authentication and Authorization Service (JAAS)**:JAAS提供了用户身份验证和权限管理的框架,有助于实现安全性。 9. **Java Management Extensions (JMX)**:JMX允许创建、管理和监控Java应用程序的...

    java_mail三件套

    Commons Email提供了许多高级功能,如发送HTML邮件、添加附件、设置抄送和密送、支持SMTP身份验证以及错误处理等。通过这个库,开发者可以轻松地构建复杂的电子邮件,而无需深入理解底层的JavaMail API。 3. **mail...

    电子邮件发送器常用jar包

    它支持发送HTML邮件、多部分邮件(包括附件)、发送带图片的邮件,以及进行SMTP身份验证等高级功能。 在使用这些jar包时,开发者需要将它们添加到项目的类路径中,然后通过导入相应的包名,调用提供的类和方法来...

    J2EE+Tutorial中文版,《J2EE指南》中文版

    10. **安全**:J2EE提供了一套全面的安全模型,包括身份验证、授权、加密等机制,保护应用程序和数据的安全。 通过"J2EE+Tutorial中文版.chm"这个文档,学习者可以了解到J2EE的完整体系,理解各种组件的作用,掌握...

    mail+activation 邮件jar包

    - 不同的邮件服务提供商可能需要不同的身份验证方式,例如OAuth2,这时可能需要额外的库和配置。 - SSL/TLS加密通常用于安全地连接SMTP服务器,需确保正确配置。 - 发送附件时,要正确设置MIME类型,避免数据丢失...

    java发送email依赖jar包

    在这个例子中,我们创建了一个`SimpleEmail`对象,设置了SMTP服务器信息,包括主机名、端口、用户名和密码(用于身份验证),然后指定了发件人、收件人、主题和邮件正文。最后,调用`send()`方法发送邮件。 总的来...

    CXF webService所需要的jar包

    3. **wss4j-1.5.11.jar**:Web Services Security for Java(WSS4J)是Apache提供的安全框架,它为CXF提供了Web服务安全支持,如数字签名、加密、身份验证等。 4. **jetty-server-7.2.2.v20101205.jar** 和 **jetty...

    Java EE 6 标准与规范(中文版)

    - **身份验证**:使用JAAS(Java Authentication and Authorization Service)进行身份验证。 - **授权**:通过Web.xml中的元素控制访问权限。 **2.4 用户验证的必要条件** - 使用HTTP基本认证或表单登录等方式...

    Java文件上传下载、邮件收发实例代码

    3. 创建`Session`对象,使用之前设置的属性,并可选择提供用户名和密码进行身份验证。 4. 创建`MimeMessage`对象,设置发件人、收件人、主题和邮件内容。 5. 使用`Transport`类的`send`方法发送邮件。 接收邮件则...

Global site tag (gtag.js) - Google Analytics