MFC邮件发送程序(C语言版带界面)


实验四 发送邮件 1、实验目的: 要求学生掌握Socket编程中流套接字的技术,以及邮件的发送 2、实验内容: i. 要求学生掌握利用Socket进行编程的技术 ii. 不能采用现有的工具,必须自己一步一步,根据协议进行操作 iii. 要求每一次操作,必须点击下一步才能继续 iv. 了解邮件发送格式 v. 必须采用图形界面,可以编辑发送内容 vi. 可选,建立自己的邮件服务器 vii. 发送邮件可以发给自己的邮件服务器,也可以发给已知邮件服务器 viii. 要求可以查看得到发送的邮件
资源截图
代码片段和文件信息
#include “base64h.h“
#include  
#pragma comment(lib “ws2_32“)  
#include 
using namespace std;
#define SERVER_PORT 8002
int main()
{
char *userName[] = {“yangwan@myself.com““xiaoxiao@myself.com““123@myself.com““yangxiao@myself.com“};
char *userPassword = “yangwan“;
char tempbuff[1024] = {0};
char tempb[128] = {0};
WORD socketVersion;
WSADATA wsaData;
SOCKET listenSocketserverSocket;
struct sockaddr_in clientAddr;
struct sockaddr_in serverAddr;
int return_num = 0;
socketVersion = MAKEWORD(22);
return_num = WSAStartup(socketVersion&wsaData);
if(return_num != 0)
{
cout<<“WSAStartup Failed“< return -1;
}
if(LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion != 2))
{
cout<<“Socket Version is Wrong!“< return -1;
}
cout<<“Init Socket Environment Successfully“< /*****************************************************/
listenSocket = socket(AF_INETSOCK_STREAMIPPROTO_TCP);
if(listenSocket == INVALID_SOCKET)
{
cout<<“Create Listen Socket Failed“<  WSACleanup(); 
return -1;
}else
{
cout<<“Create Listen Socket Successfully“< }
serverAddr.sin_family = AF_INET;  //地址家族sin_family一般Tcp/ip地址家族为AF_INET   
    serverAddr.sin_port = htons(SERVER_PORT);//将端口号转化为网络字节  
    serverAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//使用INADDR_ANY指定任意地址  
return_num = bind(listenSocket(struct sockaddr*)&serverAddrsizeof(serverAddr));
if(return_num == SOCKET_ERROR)
{
cout<<“Bind the Port Errors“< closesocket(listenSocket);  
        WSACleanup();   
}else
{
cout<<“Bind the Port: “< }
while(true)
{
cout<<“Listenning ...................“< return_num = listen(listenSocket10);
if(return_num == SOCKET_ERROR)
{
cout<<“There are some problem in the socket listenning“< cout<<“The informatio of the Listen Error:“< closesocket(listenSocket);  
WSACleanup(); 
return -1;
}else
{
int clientAddrLen = sizeof(clientAddr);
serverSocket = accept(listenSocket(struct sockaddr*)&clientAddr&clientAddrLen);
if(serverSocket == INVALID_SOCKET)
{
cout<<“Create ServerSocket Failed“< int num;
cin>>num;
continue;
}else
{
cout<<“Server has Receive the Client‘s Requests“< cout<<“The IP of the Client: “< //inet_ntoa(char*)将网络地址转换成点分十进制的形式   
cout<<“The PORT of the Client: “< //ntohs (network to host short)作用是将一个16位数由网络字节顺序转换为主机字节顺序
strcpy(tempbuff“Welcome to YangWan‘s Mail Server!
“);
send(serverSockettempbuffstrlen(tempbuff)0);
recv(serverSockettempb1280);
cout<<“Client : “< if(strncmp(tempb“EHLO“4) == 0)
{
strcpy(tempb“This is YangWan‘s MailServer
“);
send(serverSockettempbstrlen(tempb)0);
mem

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        860  2016-04-17 18:53  readme.txt

     文件       2038  2016-04-16 16:27  MySmtpServerase64h.h

     文件     553068  2016-04-16 17:36  MySmtpServerDebugMySmtpServer.exe

     文件     811568  2016-04-16 17:36  MySmtpServerDebugMySmtpServer.ilk

     文件    5525172  2016-04-16 16:27  MySmtpServerDebugMySmtpServer.pch

     文件    1123328  2016-04-16 17:36  MySmtpServerDebugMySmtpServer.pdb

     文件     280208  2016-04-16 17:36  MySmtpServerDebugsmtpserver.obj

     文件     197632  2016-04-16 17:43  MySmtpServerDebugvc60.idb

     文件     143360  2016-04-16 17:36  MySmtpServerDebugvc60.pdb

     文件       4416  2016-04-16 17:45  MySmtpServerMySmtpServer.dsp

     文件        549  2016-04-16 14:45  MySmtpServerMySmtpServer.dsw

     文件      33792  2016-04-16 17:45  MySmtpServerMySmtpServer.ncb

     文件      49664  2016-04-16 17:45  MySmtpServerMySmtpServer.opt

     文件        258  2016-04-16 17:43  MySmtpServerMySmtpServer.plg

     文件       6584  2016-04-16 17:36  MySmtpServersmtpserver.cpp

     文件       6774  2016-04-16 16:08  StmpMySelfCMailMessage.cpp

     文件       1661  2016-04-16 15:42  StmpMySelfCMailMessage.h

     文件      24101  2016-04-16 16:08  StmpMySelfDebugCMailMessage.obj

     文件          0  2016-04-16 16:08  StmpMySelfDebugCMailMessage.sbr

     文件      15191  2016-04-16 15:43  StmpMySelfDebugNuaaLogin.obj

     文件          0  2016-04-16 15:43  StmpMySelfDebugNuaaLogin.sbr

     文件     105921  2016-04-16 15:43  StmpMySelfDebugStdAfx.obj

     文件    1375077  2016-04-16 15:43  StmpMySelfDebugStdAfx.sbr

     文件    3728384  2016-04-16 16:08  StmpMySelfDebugStmpMySelf.bsc

     文件     118877  2016-04-16 16:08  StmpMySelfDebugStmpMySelf.exe

     文件     253640  2016-04-16 16:08  StmpMySelfDebugStmpMySelf.ilk

     文件      14524  2016-04-16 15:43  StmpMySelfDebugStmpMySelf.obj

     文件    7010056  2016-04-16 15:43  StmpMySelfDebugStmpMySelf.pch

     文件     410624  2016-04-16 16:08  StmpMySelfDebugStmpMySelf.pdb

     文件       3572  2016-04-16 15:43  StmpMySelfDebugStmpMySelf.res

............此处省略33个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)