邮件检查问题

问题描述

下面是我的代码,问题出的不知道什么原因,不知道是不是系统区别问题,在windows下面运行是可以正常检查出来,但是在Linux下面就不行了,求解答 package string.code;import java.io.IOException;import org.apache.commons.net.smtp.SMTPClient;import org.apache.commons.net.smtp.SMTPReply;import org.xbill.DNS.Lookup;import org.xbill.DNS.Record;import org.xbill.DNS.Type;public class CheckEmailObj {public static boolean checkEmail(String email) {DealString ds = new DealString();// if (!email.matches("[\w\.\-]+@([\w\-]+\.)+[\w\-]+")) {if (ds.emailFormat(email) == false) {// System.err.println("Format error");return false;}getProperties getset = new getProperties();String efrom = getset.readValue("gecxml/config.properties", "mail.from");String[] efromarray = efrom.split("@");String log = "";String host = "";String hostName = email.split("@")[1];Record[] result = null;SMTPClient client = new SMTPClient();try {System.out.println(hostName + " hostName");System.out.println(Type.MX + " Type.MX");// 查找MX记录Lookup lookup = new Lookup(hostName, Type.MX);System.out.println(lookup + " lookup");lookup.run();System.out.println(lookup.getAnswers() + " lookup.getAnswers()");System.out.println(lookup.getResult() + " lookup.getResult()");System.out.println(Lookup.SUCCESSFUL + " Lookup.SUCCESSFUL");if (lookup.getResult() != Lookup.SUCCESSFUL) {log += "找不到MX记录n";return false;} else {result = lookup.getAnswers();}// 连接到邮箱服务器for (int i = 0; i < result.length; i++) {host = result[i].getAdditionalName().toString();client.connect(host);if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) {client.disconnect();continue;} else {log += "MX record about " + hostName + " exists.n";log += "Connection succeeded to " + host + "n";break;}}log += client.getReplyString();// HELO cyou-inc.comclient.login(efromarray[0].toString());log += ">HELO localhostn";log += "=" + client.getReplyString();// MAIL FROM: <zhaojinglun@cyou-inc.com>client.setSender("info@localhost.org");log += ">MAIL FROM: <info@localhost.org>n";log += "=" + client.getReplyString();// RCPT TO: <$email>client.addRecipient(email);log += ">RCPT TO: <" + email + ">n";log += "=" + client.getReplyString();if (250 == client.getReplyCode()) {return true;}} catch (Exception e) {e.printStackTrace();} finally {try {client.disconnect();} catch (IOException e) {}// 打印日志System.err.println(log);}return false;} 问题补充:不是编码问题,所以值都是正常的,我换了一个发送去试邮件发送失败! javax.mail.MessagingException: Unknown SMTP host:smtp.163.com;nested exception is:java.net.UnknownHostException: smtp.163.com出的这个错误,但是机器可以连接外网,头晕中

解决方案

既然不是程序问题,那有可能就是linux下的host映射,访问权限等等问题,这个你不要通过程序来找问题,通过你的机器来找问题,首先能上网是不行的,试试能不能ping通stmp.163.com再说。
解决方案二:
1.检查一下你的properties文件编码问题,是否已经乱码,window和linux下编码不同,乱码的可能性很大。2.建议像这种问题,用debug调试一下,什么问题都解决了。

时间: 2024-12-03 06:59:41

邮件检查问题的相关文章

反垃圾邮件技术解析

1.概述 电子邮件是最常用的网络应用之一,已经成为网络交流沟通的重要途径.但是,垃圾邮件(spam)烦恼着大多数人,近来的调查显示,93%的被调查者都对他们接收到的大量垃圾邮件非常不满.一些简单的垃圾邮件事件也造成了很有影响的安全问题.日益增加的垃圾邮件现在会造成1年94亿美元的损失(来自chinabyte上一则新闻的数据),在一些文章表明,垃圾邮件可能会花费一个公司内每个用户600到1000美元. 垃圾邮件随着互联网的不断发展而大量增长,不再像以前一样,只是小小的一个骚扰,现在的垃圾邮件可以说

Java Mail API及其应用 —— 一个邮件列表服务器的实现 (四)(转贴)

服务器|邮件列表 附录:ListServer.java/*** 类ListServer提供基本的邮件列表服务功能:读取指定邮件帐号的所有新邮件,然后转发给* 在emailListFile文件中指定的所有邮件帐号(订阅者).emailListFile中的邮件帐号格式* 为每一行一个邮件帐号.*/import java.util.*;import java.io.*; import javax.mail.*;import javax.mail.internet.*;import javax.acti

常用端口大全

1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器 2 compressnet Management Utility compressnet 管理实用程序 3 compressnet Compression Process 压缩进程 5 rje Remote Job Entry 远程作业登录 7 echo Echo 回显 9 discard Discard 丢弃 11 systat Active Users 在线用户 13 daytim

计算机端口大全

  计算机端口大全如下: 0端口:无效端口,通常用于分析操作系统 1端口:传输控制协议端口服务多路开关选择器 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发生器 20端口:FTP文件传输协议(默认数据口) 21端口:FTP文件传输协议(控制) 22端口:SSH远程登录协议 23端口:telnet(终端仿真协议),木马Tiny Telnet Server开放此

计算机端口详解

计算机端口详解 一 摘要 端口是个网络应用中很重要的东西,相当于"门"了. 计算机"端口"是英文port的义译,可以认为是计算机与外界通讯交流的出口.其中硬件领域的端口又称接口,如:USB端口.串行端口等.软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区.     可以先了解面向连接和无连接协议(Connection-Oriented and Connectionless Prot

PHP 获取远程文件内容的函数代码_php技巧

如下函数: 复制代码 代码如下: <? /** 获取远程文件内容 @param $url 文件http地址 */ function fopen_url($url) { if (function_exists('file_get_contents')) { $file_content = @file_get_contents($url); } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){ $i

十大互联网丑闻事件

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 CNET:新CEO和 新的SUN-Intel关系 新官上任三把火,SUN的新CEO带来的不仅仅是新的技术,而且包括把英特尔带到SUN的服务器中. 旧金山的新闻评论家认为,现在的SUN和英特尔的关系正在逐渐变暖. 信息周刊:Email问题 随着电子邮件日益增多,进入人们日常生活,电子邮件带来的问题也日益严重,从垃圾邮件到被邮件检查. 不好的习惯

计算机常用端口一览表

1 传输控制协议端口服务多路开关选择器 2 compressnet 管理实用程序 3 压缩进程 5 远程作业登录 7 回显(Echo) 9 丢弃 11 在线用户 13 时间 15 netstat 17 每日引用 18 消息发送协议 19 字符发生器 20 文件传输协议(默认数据口) 21 文件传输协议(控制) 22 SSH远程登录协议 23 telnet 终端仿真协议 24 预留给个人用邮件系统 25 smtp 简单邮件发送协议 27 NSW 用户系统现场工程师 29 MSGICP 31 MSG

浅谈Firefox与Chrome的设计理念

如你所见,我本人一直都是一个Firefox的重度用户.所以我写的关于Firefox的文章绝对不在少数,比如前几天的这篇文章中,就十分详细的阐述了我为什么选择火狐浏览器. 最近这几天来,浏览器市场可谓是硝烟弥漫.先是网民集体为IE6举行了葬礼:接着是微软官方宣布IE9将完美支持HTML5:号称地球上最快的Opera10.5如期发布:在这一切尘埃尚未落定的时候,Firefox又因为难以逾越25%的市场占有率而被人抨击:随即Mozila也迅速反击,称Firefox之所以在JS上效率不如其他浏览器并不是