`
hwpok
  • 浏览: 250530 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

跟据Email 查找 SMTP 服务器

    博客分类:
  • Java
阅读更多
package com.roadway.edserver.util;

import java.util.HashMap;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class FetchSMTP {
    
private static FetchSMTP smtpFetcher = new FetchSMTP();
    
public static HashMap<String, String> smtps = new HashMap<String, String>();
    
private FetchSMTP(){};
    
public static FetchSMTP getInstance(){
        
return smtpFetcher;
    }

    
private String getSmtpByAtBackside(String atBackside) {
        String smtpServer 
= null;
        
try {
            Hashtable
<String, String> env = new Hashtable<String, String>();
            env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.dns.DnsContextFactory");
            DirContext ctx 
= new InitialDirContext(env);
            Attributes attrsAll 
= ctx.getAttributes(atBackside);
            Attribute attrMx 
= attrsAll.get("MX");
            String recordMx 
= (String) attrMx.get();
            smtpServer 
= recordMx.substring(recordMx.indexOf(" "+ 1);
        }
 catch (Exception e) {}
        
return smtpServer;
    }


    
public String getSmtpByEmail(String email) {
        String smtp 
= null;
        
if (email != null ) {
            String atBackside 
= email.substring(email.indexOf("@"+ 1, email.length());
            smtp 
= smtps.get(atBackside);
            
if (smtp == null{
                smtp 
= this.getSmtpByAtBackside(atBackside);
                
if (smtp != null{
                    FetchSMTP.smtps.put(atBackside, smtp);
                }

            }

        }

        
return smtp;
    }

    
public static void main(String args[]){
        FetchSMTP f 
= FetchSMTP.getInstance();
        System.out.println(f.getSmtpByEmail(
"hwpok@163.com"));
    }

}
分享到:
评论

相关推荐

    php-smtp-email-validation_6vc131_php_

    3. **邮件验证**:向SMTP服务器发送RCPT TO命令,服务器会响应是否接受该邮箱地址。如果返回成功,邮件地址通常被认为是有效的。 4. **关闭连接**:完成验证后,关闭与SMTP服务器的连接。 5. **异常处理**:在过程...

    Email协议imap&pop;&smtp;

    3. **邮件管理**:可以创建文件夹、标记邮件,便于组织和查找。 **SMTP(Simple Mail Transfer Protocol)** SMTP是用于发送电子邮件的协议。它定义了邮件服务器之间的通信规则,包括如何验证发件人身份、如何将...

    EMAIL服务器源代码.zip

    1. **SMTP服务器**:处理邮件的发送,验证发件人身份,与目标邮件服务器建立连接,传输邮件内容,并处理错误和重试策略。 2. **IMAP/POP3服务器**:提供邮件检索服务,允许用户通过客户端软件登录并获取邮件。IMAP...

    中南大学网络工程实验-服务器搭建实验原创40页超详细手册-之EMAIL篇

    DNS服务器的配置也至关重要,需要创建正向和反向查找区域,与SMTP服务器中设置的域名保持一致。在配置VisendoSMTPExtender_Plus(VSMTP)时,手册指导学生创建邮箱账号,并设置信号账户,确保与SMTP和DNS服务器中的...

    php-smtp-email-validation_e56mg1_php_源码

    4. **错误处理**:处理SMTP服务器可能返回的各种错误,如网络问题、权限错误、邮件格式错误等。 5. **安全**:避免滥用,如防止开放重定向、防止邮件地址收集、限制验证频率等。 6. **单元测试**:对邮件发送和...

    网络实验:服务器配置

    本实验涵盖了Web服务器、FTP服务器、DNS服务器、DHCP服务器以及Email服务器和活动目录的配置,这些都是构建和维护网络基础设施的基础。 **一、Web服务器配置** Web服务器用于托管和分发网页内容。在Windows环境中...

    php-smtp-email-validation_ia9t38_php_

    2. 邮件验证算法:了解如何使用正规表达式或其他方法检查电子邮件地址的格式,以及如何通过DNS查找MX记录来验证邮件服务器的存在。 3. PHP类和函数:项目可能包含自定义的PHP类或函数,用于封装SMTP验证过程,提高...

    win2003各种服务器配置

    《Windows Server 2003全面解析:DNS、Web、DHCP、Email及域控制器配置指南》 Windows Server 2003是一款历史...请根据提供的“win2003各种服务器配置”文件进一步学习,逐步熟悉每个服务的配置细节,提升你的IT技能。

    计算机网络课设windowsserver2003搭建服务器

    Email服务器用于电子邮件服务,通常使用SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)协议: 1. 创建Email服务器:安装并配置SMTP服务,设置邮件域和用户账户。 2. 测试Email...

    Fast Email Verifier.rar

    它通过一系列复杂的技术手段,包括DNS查询、SMTP服务器通信等,来确定邮箱地址是否存在、是否可以正常接收邮件。这个过程不仅可以避免无效邮件的发送,节省宝贵的资源,还可以防止因为发送到不存在的邮箱而引起的反...

    verify-email:此类可用于使用 SMTP 协议检查电子邮件是否有效

    4. **响应分析**:SMTP服务器对RCPT TO命令的响应会指示邮件地址是否有效。如果服务器接受该地址,它通常会返回一个250 OK的响应。如果拒绝,可能会返回一个错误代码,表示地址无效或不存在。 PHP中实现SMTP验证...

    Fast Email Verifier 邮箱验证

    2. 验证阶段:工具会逐个分析每个邮箱地址,首先进行语法检查,然后通过DNS查找确认域名是否存在,再尝试通过SMTP服务器建立连接,最后确定邮箱是否可接收邮件。 3. 结果反馈:验证完成后,软件会将结果分为有效、...

    fast email verifier邮箱验证工具

    2. **DNS解析**:通过DNS查找MX(邮件交换)记录,确定邮件服务器的存在。如果DNS查询失败或找不到MX记录,说明邮箱可能无法接收邮件。 3. **SMTP连接**:尝试与邮件服务器建立SMTP连接,检查邮箱是否接受来自外部...

    在没有邮件服务器的情况下直接从Azure上的C#.net发送电子邮件

    它允许开发者配置SMTP服务器的地址、端口、用户名、密码等信息,并提供了发送邮件的方法。`SmtpClient`可以与`MailMessage`对象配合使用,后者用于封装邮件的头部信息(如发件人、收件人、主题和正文)以及附件等。 ...

    编程实现收发电子邮件

    发送邮件时,我们通常会用到SMTP服务器,通过建立一个安全的TCP连接,然后按照SMTP协议的规则与服务器交互,完成邮件的提交。在编程实现这一过程时,我们需要了解SMTP的命令如HELO、EHLO、AUTH、MAIL FROM、RCPT TO...

    GFI MailSecurity for Exchange/SMTP_part7(邮件安全器)

    &lt;br&gt;可打开以下地址,直接下载软件与用户手册 http://software.gfi.com/mailsecurity10.exe&lt;br&gt;http://www.gfisoftware.cn/mailsecurity/&lt;br&gt;&lt;br&gt;或在CSDN中,查找 GFI MailSecurity for Exchange/SMTP_part1...

    Python库 | validate_email_wt-1.4.5-py2.py3-none-any.whl

    3. **SMTP连接**:有些库可能还会尝试与邮件服务器建立SMTP连接,进一步确认邮件地址是否接受邮件,但这可能会涉及到隐私和性能问题,因此`validate_email_wt`可能仅提供基本的验证。 4. **自定义规则**:为了满足...

    邮件邮箱发送接收源码

    在实际应用中,我们通常会使用SMTP服务器来发送邮件,并通过POP3或IMAP服务器来检查和下载收件箱中的邮件。 邮件发送源码的核心部分涉及以下几个步骤: 1. **配置SMTP服务器**:需要知道SMTP服务器的地址、端口、...

    SMTP.rar_Email客户端_Visual_C++_

    在SMTP客户端中,Winsock用于建立与SMTP服务器的连接,发送和接收数据。 2. **SMTP协议理解**:SMTP协议定义了邮件传输的格式和交互流程。客户端需要了解如何发送EHLO/HELO命令来开始会话,AUTH命令进行身份验证,...

    Visual C++之Email协议编程

    1. **SMTP协议实现**:开发者需要建立一个socket连接到SMTP服务器,然后按照SMTP命令规范发送数据。例如,"HELO"用于初始化连接,"MAIL FROM:"指定发件人,"RCPT TO:"指定收件人,"DATA"发送邮件内容,最后以"QUIT...

Global site tag (gtag.js) - Google Analytics