`
lupingui
  • 浏览: 157360 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

根据邮件地址获得邮件服务器

阅读更多
	/**
	 * 根据邮件地址,获得邮件服务器
	 * @param mail
	 * @return
	 * lupingui
	 * 2009-4-17
	 */
	public static String getSmtpHost(String mail){
		//获得邮件Domain
		int atMarkPosition = mail.indexOf("@");
		if (atMarkPosition < 1){
			return null;
		}
		String mailDomain = mail.substring(atMarkPosition + 1);
		
		boolean isMxSuccessful = false;
		//查询邮件交换记录
		Lookup lookup = null;
		try {
			lookup = new Lookup(mailDomain, Type.MX);
			lookup.run();
			if(lookup.getResult() == Lookup.SUCCESSFUL){
				isMxSuccessful = true;
			}else{				
				lookup = new Lookup(mailDomain);
				lookup.run();
				if(lookup.getResult() != Lookup.SUCCESSFUL){
					return null;
				}
			}
		} catch (TextParseException ex) {
			ex.printStackTrace();
			return null;
		}
		
		//得到服务器列表
		Record[] answers = lookup.getAnswers();
		String[] hostArray = new String[answers.length];
		for (int i = 0; i < answers.length; i++) {
			Record record = answers[i];
			Name name = record.getAdditionalName();
			if(!isMxSuccessful){
				name = record.getName();
			}
			int labelCount = name.labels();
			StringBuffer sbf = new StringBuffer();
			for (int j = 0; j < labelCount; j++) {
				String labelString = name.getLabelString(j);
				if(!labelString.equals("")){
					sbf.append(labelString).append(".");
				}
			}
			if(sbf.length() > 0 && sbf.charAt(sbf.length()-1) == '.'){
				sbf.deleteCharAt(sbf.length()-1);
			}
			hostArray[i] = sbf.toString();
		}
		
		//返回,如果有多个则随机返回一个。
		if(hostArray.length == 1){
			return hostArray[0];
		}else{
			Random random = new Random();
			int index = random.nextInt(hostArray.length);
			return hostArray[index];
		}
	}

 

分享到:
评论
1 楼 q345080370 2010-08-11  
这个可以转换成C# 的语法吗?

相关推荐

    WinWebmail邮件服务器.zip

    WinWebMail是安全高速的全功能邮件服务器,融合强大的功能与轻松的管理为一体,提供最佳的企业级邮件系统解决方案。 安全 · 支持 SMTP,SSL SMTP,POP3,SSL POP3,IMAP4,SSL IMAP4,LDAP,WebMail,CA Server...

    邮件服务器解决方案

    在协作平台中,邮件服务是其中非常重要的组成部分,现在,主要的邮件服务器方案提供商均在其邮件系统的基础上增加了协作办公的接口,可以将其他协作功 能连接到一个统一的操作平台上。现在提供邮件服务方案的主要...

    TurboMail邮件系统 邮件服务器 Windows版本v5.0

    快速发送大附件,网络硬盘共享,邮件会话,邮件标记,邮件拖拉,邮件预览,图片预览,自定义用户统一文件夹等,V5.0以超强的产品内核与丰富的应用功能获得客户们的一致好评,进一步强化了拓波软件在企业邮件系统市场...

    用Delphi2010 实现邮件附件收发功能

    Host :指定邮件服务器,一般为pop3邮件服务器的地址,如 pop3.126.com。 Username :用户名,也就是邮箱名,如billanking2002@126.com。 Password :邮箱密码,在进行收发邮件时组件需要凭密码进行登录。 其它...

    C#邮件收发类项目MailHelper.zip

    邮件操作类 获取Email登陆地址 发送邮件 发送邮件(要求登陆) ... 操作服务器上邮件 向服务器发送信息 从网络流中读取服务器回送的信息 获取邮件信息 读取邮件内容 删除邮件 关闭服务器连接

    登陆POP3服务器,获得帐户中电子邮件数据.rar_C# 邮件_服务器 csharp_电子邮件_邮件_邮件服务器c

    绝好的C# 代码,下了决不后悔

    MFC邮件发送程序(C语言版带界面)

    实验四 发送邮件 1、实验目的: 要求学生掌握Socket编程中流套接字的技术,以及邮件的发送 ...vii. 发送邮件可以发给自己的邮件服务器,也可以发给已知邮件服务器 viii. 要求可以查看得到发送的邮件

    TurboMail邮件系统 邮件服务器 LINUX标准企业版本v5.0

    快速发送大附件,网络硬盘共享,邮件会话,邮件标记,邮件拖拉,邮件预览,图片预览,自定义用户统一文件夹等,V5.0以超强的产品内核与丰富的应用功能获得客户们的一致好评,进一步强化了拓波软件在企业邮件系统市场...

    发送邮件发送,先提一下SMTP

    SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 再简单介绍一下名称空间(NameSpace)System.Web.Mail类库里所提供的邮件发送的对象、属性和方法 (1)它有三个类:SmtpMail、MailMessage和MailAttachment。这三...

    Postfix反垃圾邮件技术

    一、数据前过滤  数据前过滤是指在smtp会话中,data指令发送前进行的过滤。在这个阶段,有四种不同子阶段的过滤:smtp连接时过滤、helo/ehlo指令过滤、mail ...他常用于在实际运行的邮件服务器上测试邮件过滤规则。

    网络课程设计邮件收发系统

    再输入:返回的SMTP服务器的主机名,便可以得到它的IP地址 (4)再教你一招:借助Telnet程序手工收发邮件 发:telnet smtp.163.com 25(默认的SMTP服务器端口为25) 之后的过程这里不详细说明,大家可以自己去查...

    Linux邮件服务器软件比较.docx

    2.Postfix的一些特点 Linux邮件服务器软件比较全文共7页,当前为第1页。支持多传输域:Sendmai支持在Internet, DEet, X.400及UUCP之间转发消息。 Postfix则灵活的设计为无须虚拟域 (vistual domai)或别名来实现这种...

    TurboGate反垃圾邮件网关 2012 v4.3.0 Windows版.zip

    高效拦截垃圾邮件,阻断互联网上的网络攻击、黑客入侵、病毒感染等,有效保护邮件服务器的数据安全性,实现反垃圾规则库和病毒库实时同步更新,为企业打造一个干净的电子办公环境。 4. 全面监控和审核邮件收发 对...

    NorthernMail-client:匿名邮件服务器

    NorthernSec邮件客户端是用于访问NorthernSec暗网邮件服务器的邮件客户端。 我们的目标 通过这个项目,我们的目标是为用户提供一个真正匿名和开源的邮件平台。 我们的目标是高安全性和匿名性,同时保持用户友好和...

    萤之光安全邮件

    经过本软件保护的安全邮件,只有合法接收者有权获得邮件明文内容,无论是传输过程中还是存储在邮件服务器中,邮件始终是安全的,非接收者本人无法获得邮件明文内容。 中软萤之光工作室致力于数据安全相关技术研究...

    反垃圾邮件解决方案

    美讯智邮件信息安全网关在 IBM x335 服务器上进行了严格的性能和压力测试,测试结果证明在双路 CPU 的 x335 服务器上能够有效的支持每秒 200 封邮件的吞吐量。作为 x335 服务器的新一带产品的 X336 服务器相对于 x...

    vb 6 支持smtp验证的邮件发送程序.rar

    支持smtp服务器验证功能,程序组合:dapha(汪锋),X-Mailer:程序太平洋:邮件发送软件,还可以发送HTML网页文件,填写好邮件标题、正文等选项后,即可发送邮件,PS:我是一名VB爱好者,希望得到大家的帮助,共同学习,...

    java自动发邮件

    //SMTP服务器地址 private String port = "25"; //SMTP服务器端口 private String address; //用于发送EMAIL的发送者地址 private String username; //发送者的用户名 private String password; //发送者的密码...

    Windows下纯C语言Socket、smtp发送邮件,支持附件

    1、可以发送带附件的邮件,附件可以是多个,附件大小限制由发送方服务器而定,暂未测试具体为多少MB 2、邮件内容和主题可以是空,但当有附件时,主题取第一个附件的文件名(不含扩展名) 3、密码验证均为base64加密 ...

    Web、ftp、samba与NFS服务器配置

    Linux作为一种流行的开源服务器平台,在业界得到了普遍认可,以RedHat、CentOS为首的Linux厂商在服务器...本章将对Linux下的Apache网页服务器、FTP服务器、SendMail邮件服务器和DNS服务器的配置和使用方法进行介绍。

Global site tag (gtag.js) - Google Analytics