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

编程入门 行业动态 更新时间:2024-10-07 02:25:38

linux程序出错<a href=https://www.elefans.com/category/jswz/34/1768620.html style=发邮件,linux下c发送邮件socket验证问题"/>

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

分享:

喜欢

0

赠金笔

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

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

发评论

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

昵   称:

评论并转载此博文

发评论

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

更多推荐

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

本文发布于:2024-02-28 05:39:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768404.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:发邮件   发送邮件   程序   linux   socket

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!