发邮件,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验证问题
发布评论