您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 发送邮件的C语言源代码
发送邮件的源代码,模拟smtp的协议写的程序代码:主要有2个文件,一个头文件,一个实现文件头文件如下;文件名:fsSendMail.h文件内容://---------------------------------------------------------------------------#ifndeffsSendMailH#definefsSendMailH#includevector#includewinsock2.h#includeassert.H#includestdlib.h#includestdio.h#includeiostream#includefstream#includeset#includestring#includetime.h#includesys/TIMEB.Husingnamespacestd;//---------------------------------------------------------------------------voidMakeVector(char*s,vectorstring&v);intClientSendMail(char*proxyServerName,//使用的代理服务器地址UINTproxyServerPort,//代理服务器的端口号constchar*proxyUser,//连接代理服务器的用户名constchar*proxyPass,//连接代理服务器的密码constchar*serverHostName,//邮件服务器地址UINTserverPort,//邮件服务器端口constchar*username,//邮件用户名constchar*pass,//邮件用户对应的密码constchar*senderAddr,//发送邮件的地址//constchar*recptAddress,constchar*from,//formostmailserver,itonlysupportyouselfaddress//发送邮件的地址constchar*to,//接收邮件的地址,每个邮件地址之间用逗号;进行分开constchar*cc,//抄送邮件的地址constchar*bcc,//密送邮件的地址constchar*subject,//邮件的标题constchar*bodytext,//邮件的正文constchar*bodyhtml,//邮件正文的html格式constchar*attachments,//附件内容,各个附件之间采用逗号;进行分开char*sMsg);//发送邮件的错误应答#endif实现文件如下:文件名:fsSendMail.cpp文件内容://---------------------------------------------------------------------------#pragmahdrstop#includefsSendMail.h//---------------------------------------------------------------------------#pragmapackage(smart_init)#defineBUFFER_BLOCK_SIZE4096#defineDEAL_RETURN_CODE(retCode){if((retCode)!=0)returnretCode;}#defineDEAL_SOCK_ERROR(retCode,sock)if((retCode)==SOCKET_ERROR||(retCode)==0)\{\coutSockerror:GetLastError()endl;\closesocket(sock);\return-1;\}//AuxiliaryFunctionsintClientCommandResolve();voidInputLine(string&str);intGetResponseCode(SOCKETsock,intcorrectCode,string&str);BOOLResponsedCodeFinished(conststring&str);u_longConvertHostnameToLongHostAddress(constchar*destAddress);BOOLSendMessage(SOCKETsock,constchar*buffer,intbufferLen);//Sub-FunctionsinClientCommandvoidEncodingBase64(constchar*src,char*des);voidDecodingBase64(constchar*src,char*des);voidEncodingBase64Adv(constchar*src,intlength,char*des);voidDecodingBase64Adv(constchar*src,intlength,char*des);UCHARSixBitDecodeIndex(chara);BOOLEncodeFileBase64(conststring&filename,string&code);BOOLReadFileToStr(conststring&filename,string&code);voidHeadTextTemple(conststring&command,conststring&addr,string&buffer,BOOLbPrintCommond=TRUE);voidDate(string&buffer);voidFrom(conststring&addr,string&buffer);voidTo(constvectorstring&to,string&buffer);voidCc(constvectorstring&cc,string&buffer);voidBcc(constvectorstring&bcc,string&buffer);voidDataHead(conststring&from,constvectorstring&to,constvectorstring&cc,constvectorstring&bcc,conststring&subject,conststring&bodytext,conststring&bodytexthtml,BOOLbHtml,BOOLbAttachment,string&majorSplitTag,string&buffer);voidDataBody(BOOLbHtmlBody,BOOLbAttachment,conststring&majorSplitTag,conststring&bodytext,conststring&bodytexthtml,constvectorstring&attachments,string&buffer);voidDataBody_PureText(conststring&bodytext_base64,string&buffer);voidDataBody_TextAndAttachments(conststring&bodytext_base64,constvectorstring&attachments,conststring&majorSplitTag,string&buffer);voidDataBody_HtmlOnly(conststring&bodytext_base64,conststring&html_base64,conststring&majorSplitTag,string&buffer);voidDataBody_HtmlAndAttachments(conststring&bodytext_base64,conststring&html_base64,constvectorstring&attachments,conststring&majorSplitTag,conststring&subSplitTag,string&buffer);//AgentApplicationFunctionsintSendMail(conststring&proxyServerName,UINTproxyServerPort,conststring&proxyUser,conststring&proxyPass,conststring&serverHostName,UINTserverPort,conststring&username,conststringpass,conststring&senderAddr,constvectorstring&recptAddress,constvectorstring&from,//formostmailserver,itonlysupportyouselfaddressconstvectorstring&to,constvectorstring&cc,constvectorstring&bcc,conststring&subject,conststring&bodytext,conststring&bodyhtml,constvectorstring&attachments);intSocks5StartIPv4(conststring&proxyServerHostName,u_intproxyServerPort,conststring&username,conststring&pass,u_longdestAddress,u_intdestPort,SOCKET&sock);/*int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){ClientCommandResolve();return0;}*/intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){//TODO:Placecodehere.//ShowWindow(NULL,SW_HIDE);ClientCommandResolve();return0;}voidInputLine(string&str){charch;str=;while((ch=getchar())!='\n')str+=ch;}voidMakeVector(char*s,vectorstring&v){inti;char*p,*p1;char*sTmp;if(s==NULL)return;if(*s=='\0')return;p=(char*)s;while(1){p1=strchr(p,';');if(p1==NULL){v.push_back(p);break;}else{sTmp=(char*)malloc(p1-p+2);memset(sTmp,0,p1-p+2);memcpy(sTmp,p,p1-p);v.push_back(sTmp);free(sTmp);p=p1;p++;}}}/*参数设置:proxyServerName:代理服务器IP地址proxyServerPort:代理服务器端口号proxyUser:连接代理服务器的用户名proxyPass:连接代理服务器的密码serverHostName:邮件服务器地址serverPort:邮件服务器端口username:连接邮件服务器的用户名pass:连接邮件服务器的密码senderAddr:发送邮件的邮件地址recptAddress:from:发送邮件的发送者邮件地址to:cc:bcc:subject:bodytext:bodyhtml:attachments:*/i
本文标题:发送邮件的C语言源代码
链接地址:https://www.777doc.com/doc-3348637 .html