linux程序出错发邮件,linux下c发送邮件socket验证问题

linux下c发送邮件socket验证问题

(2012-04-10 01:40:12)

标签:

linux

邮件

杂谈

linux下c发送邮件socket验证问题下面是一个linux下c写的发送邮件的程序。

我想在SendMail函数中加一些判断。就是与smtp服务器数据交换的每一步加一个验证。比如认证失败了。然后就停止发送邮件。返回一个错误的代号。现在是失败了函数也一直执行。返回结果都是0。不知道是否成功失败。只有看调试信息。我是一个新手。请高手帮忙。先谢了。

#include "smtp.h"

#ifdef WIN32

#include

#include

#include

#else

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#endif

int sock_connect(const char *pHostName,unsigned short nPort)

{

intnSock;

struct hostent *host;

struct sockaddr_in client_addr;

if ((host = gethostbyname(pHostName)) == NULL)

{

#ifdef _DEBUG

printf("sock_connect gethostbyname()

error!\r\n");

#endif

return 0;

}

if ((nSock = (int) socket(AF_INET, SOCK_STREAM, 0)) == -1)

{

#ifdef _DEBUG

printf("sock_connect socket()

error!\r\n");

#endif

return 0;

}

client_addr.sin_family = AF_INET;

client_addr.sin_port = htons(nPort);

client_addr.sin_addr = * ((struct in_addr *)

host->h_addr);

memset(&(client_addr.sin_zero), 0, 8) ;

if (connect(nSock, (struct sockaddr *)

&client_addr, sizeof(struct sockaddr)) == -1)

{

#ifdef _DEBUG

printf("sock_connect connect()

error!\r\n");

#endif

return 0;

}

return (nSock);

}

int sock_close(int nSock)

{

#ifdef WIN32

return closesocket(nSock);

#else

return close(nSock);

#endif

}

int sock_send(int nSock, char *pFormat, ...)

{

char szBuffer;

va_list argptr;

va_start(argptr, pFormat);

vsnprintf(szBuffer, sizeof(szBuffer), pFormat, argptr);

va_end(argptr);

#ifdef _DEBUG

printf("%s\r\n",szBuffer);

#endif

return send(nSock, szBuffer, (int) strlen(szBuffer), 0) ;

}

int sock_read(int nSock, const char *pStop)

{

int iResult = 0;

const int nSize = 256;

char szBuf;

while((iResult = recv(nSock, szBuf, nSize, 0)) >

0)

{

szBuf = '\0';

#ifdef _DEBUG

printf("%s\r\n",szBuf);

#endif

if((pStop) && (strstr(szBuf, pStop)

!= NULL))

{

break;

}

}

return iResult;

}

int SendMail(const char *pHo

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值