C实现邮件服务器,C 语言实现了连接126邮件服务器发送邮件

C 语言实现了连接126邮件服务器发送邮件

我用C 语言实现了连接126邮件服务器发送邮件,网上有很多例子,我下了,没有一个能运行起来的,这个是用netbean测试,没有问题了,下面是我的代码(要改三处地方:用户名\密码\发送邮件):

#include

#include

#include

#include

//#pragma comment(lib,"ws2_32.lib")

// Function prototype

void StreamClient(char *szServer, short nPort, char *szMessage);

// Helper macro for displaying errors

#define PRINTERROR(s) \

fprintf(stderr,"\n%: %d\n", s, WSAGetLastError())

int main(int argc, char **argv)

{

char hostname[255];

WORD wVersionRequested = MAKEWORD(2,0);

WSADATA wsaData;

int nRet;

short nPort;

nPort =25;

nRet = WSAStartup(wVersionRequested, &wsaData);

StreamClient("http://doc.xuehai.net", nPort, "AUTH LOGIN\r\n");

WSACleanup();

return 0;

}

void StreamClient(char *szServer, short nPort, char *szMessage)

{

printf("\nStream Client connecting to server: %s on port: %d",szServer, nPort);

//

// Find the server

//

LPHOSTENT lpHostEntry;

lpHostEntry = gethostbyname(szServer);

if (lpHostEntry == NULL)

{

PRINTERROR("gethostbyname()");

return;

}

//

// Create a TCP/IP stream socket

//

SOCKET theSocket;

theSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if (theSocket == INVALID_SOCKET){

PRINTERROR("socket()");

return;

}

//

// Fill in the address structure

//

SOCKADDR_IN saServer;

saServer.sin_family = AF_INET;

saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);

saServer.sin_port = htons(nPort);

//

// connect to the server

//

int nRet;

nRet = connect( theSocket, // Socket

(LPSOCKADDR)&saServer, // Server address

sizeof(struct sockaddr));// Length of server address structure

printf("\n%d1lL=====================================%d\n",nRet,SOCKET_ERROR);

if (nRet == SOCKET_ERROR)

{

PRINTERROR("socket()");

closesocket(theSocket);

return;

}

char szBuf[256];

// strcpy(szBuf, "From the Client");

char buf[350]="0";

char server[250];

gethostname(server,250);

strcpy(buf, "HELO ");

strcat(buf, server);

strcat(buf, " \r\n");

printf("%s:::%d",buf,strlen(buf));

//

// Wait for a reply

//

nRet = recv(theSocket,szBuf,sizeof(szBuf)+1,0); printf("\nData received OVER DATA: %s", szBuf);

nRet = send(theSocket, buf, strlen(buf), 0);

nRet = recv(theSocket, szBuf, sizeof(szBuf), 0); printf("\nData received2: %s", szBuf);

//发送准备登陆信息

nRet = send(t

heSocket, "AUTH LOGIN \r\n", sizeof("AUTH LOGIN \r\n"), 0);

nRet = recv(theSocket, szBuf, sizeof(szBuf), 0); printf("

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值