当前位置:  技术问答>linux和unix

关于linux下面的SMTP邮件服务器转发程序开发

    来源: 互联网  发布时间:2016-11-01

    本文导语:  我要做一个SMTP邮件转发服务器,通讯协议部分已经基本完成,但是现在遇到的问题是如何通过客户端发过来的邮箱地址解析对应的SMTP服务器地址,我用system函数执行了nslookup -type=mx 126.com >/root/桌面/ret.dat,先把查...

我要做一个SMTP邮件转发服务器,通讯协议部分已经基本完成,但是现在遇到的问题是如何通过客户端发过来的邮箱地址解析对应的SMTP服务器地址,我用system函数执行了nslookup -type=mx 126.com >/root/桌面/ret.dat,先把查询结果保存到到ret.dat中,然后解析,下面是查询结果
Server: 211.161.46.84
Address: 211.161.46.84#53

Non-authoritative answer:
126.com mail exchanger = 10 126mx01.mxmail.netease.com.
126.com mail exchanger = 10 126mx02.mxmail.netease.com.
126.com mail exchanger = 50 126mx00.mxmail.netease.com.

Authoritative answers can be found from:
126.com nameserver = ns4.nease.net.
126.com nameserver = ns2.nease.net.
126.com nameserver = ns3.nease.net.
ns2.nease.net internet address = 114.113.197.12
ns3.nease.net internet address = 220.181.28.4
ns4.nease.net internet address = 61.135.255.140
我从程序中取出ip地址211.161.46.84,端口号25创建socket进行连接,但是得到错误信息是Connection refused,我不知道是不是我取错了IP地址,下面是我的部分解析地址的源码

 //直接发送到目的地,
// 参数pHostAddr为"126.com"
int SendSmtpMailDirect(char* pHostAddr) //relay
{
struct hostent* pHost = NULL;
int nSockServer;
char szBuffer[ECHOMAX];
struct sockaddr_in SockAddr;
short sPort = 25;
char pServerAddr[128];
memset(pServerAddr, 0, sizeof(pServerAddr));
/*将查询到的SMTP地址信息保存到文件*/
sprintf(pServerAddr, "nslookup -type=mx %s >./mxAddr.dat", pHostAddr);
if( system(pServerAddr) == -1 )
{
perror("nslookup");
exit(1);
}

FILE* pFile = fopen("./mxAddr.dat", "r");

if(pFile)
{
char strTemp[8];
int bOK = 0;
while( fgets(szBuffer, ECHOMAX, pFile) )
{
strncpy(strTemp, szBuffer, 8);
strTemp[7] = '';
if(strcasecmp(strTemp, "Address") == 0)
{
int i = 8;
int nStart = 0;
/* 找到地址的开始位置 */
for(; i = '0' && szBuffer[i] 

    
 
 

您可能感兴趣的文章:

  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 我常未开发过Linux下的程序,请问Linux下可以使用那些开发工具,最好的开发工具是什么版本?
  • 最进想学习LINUX程序设计,想了解一下在LINUX下的C++程序开发工具有哪些?有快速做界面的那种吗?
  • 大家进行Linux程序开发时,安装的Linux是什么发行版?
  • 原来作的是Windows下的嵌入式开发,现在要转到Linux下,请DX帮忙推荐几本-最经典的-Linux程序开发的书籍,谢谢。
  • linux下的程序开发急救::::
  • Linux下面的开发好的Java程序,如何部署到其他机器?开发好的Java图形程序,终端上能否用?等问题
  • 怎样开发在LINUX 上运行的应用程序,像WINDOWS桌面应用程序一样
  • linux程序开发,哪些书比较好
  • Linux Kernel/Network 技术QQ群14888802,只加有内核开发、TCP/IP协议栈开发的程序员,不加新手和做应用开发的程序员。
  • 怎样学习LINUX下的程序开发
  • Linux设备驱动程序开发
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • linux下C++程序开发该从何开始?
  • linux c程序开发学到什么程度可以找到工作
  • 在linux下进行c程序开发的开发环境的选择
  • [献给想深入学习Linux开发的网友] Linux 应用程序开发到内核开发的简明指南
  • Linux(Ubuntu)下Lazarus的安装和程序开发?
  • 怎么学习Linux 设备驱动程序开发?
  • 有没关于linux下c++程序开发的著作推荐一下
  • LINUX平台下大型服务器程序开发应该用何种SOCKET模型?
  • 请推荐一个linux下数据包转发工具
  • linux9.0下可否实现多个域名邮箱的转发代理设置
  • linux下如何实现串口的转发?
  • 求助linux转发组播包的方法
  • linux内核转发包的数据流向
  • 向高手求助Linux下网络包转发的问题!!!!!!!
  • linux下udp的转发
  • 关于linux下用Ipchains 做地址转发
  • 关于LINUX下数据包转发和保存
  • linux下udp的转发问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • LINUX下面的WEB Service如果编写?是用.NET写吗?WINDOW下面的web service能在LINUX下面用吗?
  • 使用c gtk2 在linux 下,如何实现下面的问题,找了很久,没有这方面的资料
  • linux下面怎么用其它的文件下面的函数呀
  • linux下面的什么浏览器可以支持框架??许多网页没法正常观看!!!
  • 请教:linux下如何找到windows xp下面的文件
  • 怎样将linux下面的文件导入到windows下面?
  • 我以前是做windows下面的开发的,现在想转向Linux或者Unix开发
  • 关于linux下面的sock5到http的转换工具!
  • linux下面的Gftp有人用过吗?
  • 求助:下面的警告怎么解决?——关于Linux的Session
  • 谁有linux进程管理方面的资料呀,麻烦传一个
  • linux下面的开发工具
  • Linux下面的"匿名管道",是否对应着某种实体?
  • linux下如何看到2000下面的分区
  • 我打算转行到linux下面的软件开发,要准备哪些东西?
  • Linux下面的程序可以在Unix下运行么?一个硬件平台的
  • 请教linux下面的--help功能如何实现???
  • arm S3c2410 上面的 linux 在哪里下载啊 ???
  • 装linux碰到1024柱面的限制怎么办
  • 有关linux这方面的应用和发展方向有哪位高手可以指点我一下!!!
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • secureCRT下Linux终端汉字乱码解决方法
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux c字符串中不可打印字符转换成16进制
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3