首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

邮件发送程序遇到的有关问题

2012-02-25 
邮件发送程序遇到的问题我通过SMTP写了个邮件发送程序,但是我却在dafu10000@yahoo.com.cn中收不到,不知道

邮件发送程序遇到的问题
我通过SMTP写了个邮件发送程序,但是我却在dafu10000@yahoo.com.cn中收不到,不知道是代码的问题还是我操作系统问题(操作系统xp,我看服务中没有SMTP服务,是不是要装IIS才有,我登陆dafu10@126.com邮箱是可以发送邮件的,dafu10000@yahoo.com.cn也可以收到),请高手指点。 
代码如下: 
#define _WIN32_WINNT 0x0400 
#include <io.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 
#include <Tlhelp32.h> 
#include <psapi.h> 

#pragma comment(lib, "psapi.lib") 
#pragma comment(lib, "user32.lib") 
#pragma comment(lib, "ws2_32.lib") 
char MailData[255] = "From: \"dafu10\" <dafu10@126.com>\r\n "; 

//发送邮箱为dafu10@126.com,用户名、密码均为dafu10;接受邮箱为dafu10000@yahoo.com.cn。 
void SendMail(void) 

  WSADATA wsaData; 
  WORD wVersionRequested = MAKEWORD(2, 2); 
  struct hostent *pHostent = NULL; 
  SOCKET server = INVALID_SOCKET; 
  struct sockaddr_in service; 

  char Buffer[1024] = {0}; 
  WSAStartup(wVersionRequested, &wsaData); 
  server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 
  pHostent = gethostbyname("smtp.126.com"); 
  service.sin_family = AF_INET; 
  memcpy(&service.sin_addr.s_addr, pHostent->h_addr_list[0], pHostent->h_length); 
  service.sin_port = htons(25); 
  connect(server, (struct sockaddr*)&service, sizeof(service)); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "HELO Server....\r\n", strlen("HELO Server....\r\n"), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "AUTH LOGIN\r\n", strlen("AUTH LOGIN\r\n"), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "bGJleW9uZDRrb21h\r\n", strlen("ZGFmdRkY\r\n"), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "bGJleW9uZDRrb21h\r\n", strlen("ZGFmdRkY\r\n"), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "MAIL FROM: <dafu10@126.com>\r\n", strlen("MAIL FROM: <dafu10@126.com>\r\n"), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "RCPT TO: <dafu10000@yahoo.com.cn>\r\n", strlen("RCPT TO: <dafu10000@yahoo.com.cn\r\n"), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "Data\r\n", strlen("Data\r\n"), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, MailData, strlen(MailData), 0); 
  recv(server, Buffer, sizeof(Buffer), 0); 
  send(server, "QUIT\r\n", strlen("QUIT\r\n"), 0); 
  WSACleanup(); 
  printf("Success!"); 
  ExitProcess(0); 
  return; 


int main(void) 

{  
SendMail(); 
   



[解决办法]
XP的SMTP服务好像是需要额外装的。

你点控制面板,然后添加/删除程序,然后点左侧的组件管理,在那里面看一下吧...

热点排行