tplogin.cm(tplogin.cn app管理员密码)

      最后更新:2023-09-20 11:51

      手机能登录tplogin.cm吗

      由题意,知道下底为5cm 那么上底比下底短1.5cm 上底为3.5cm 又有面积增加1.5平方厘米 则 高为2cm 原来的梯形面积S=(上底+下底)*高/2=(5+3.5)*2/2=8.5平方厘米
      手机能登录tplogin.cm吗

      哪位大哥能提供一段VC发送邮件的代码?最好能带有注释

      只能说主要代码,程序是一个整体,如果要直接编译通过,那就要整个发了 你自己改下吧int CMail::sendmail(){int crecv;if(smtplogin()==0){return 0;}//发送mail from 返回250sprintf(m_sendbuff,"%s%s%s","mail from:<",m_user,"@163.com>rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=MAIL_FROM_ERROR;return 0;}//发送rcpt to 返回250sprintf(m_sendbuff,"%s%s%s","rcpt to:<",m_rcptto,">rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=RCPT_TO_ERROR;return 0;}//发送datarn 返回354sprintf(m_sendbuff,"%s","datarn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"354",3)!=NULL){m_error=DATA_ERROR;return 0;}//信头if(!SetMailHeader(m_sendbuff)){m_error=MAILHEADER_ERROR;return 0;}if(senddata()==0){return 0;}//发送空行sprintf(m_sendbuff,"%s","rnrn");if(senddata()==0){return 0;}//发送邮件bodysprintf(m_sendbuff,"%s%s",m_data,"rn");if(senddata()==0){return 0;}if(m_attachment!=NULL){char **pp;for(pp=m_attachment;*pp!=0;pp++){FILE* fp;char *buf;//准备发送附件,首先发送分界线,必须!sprintf(m_sendbuff,"%s%s%s","--",BOUNDARY_TEXT,"rn");if(senddata()==0){return 0;}sprintf(m_sendbuff,"%s%s%s","Content-Type: application/x-msdownload; name="",strrchr(*pp,'\')+1,""rn");if(senddata()==0){return 0;}sprintf(m_sendbuff,"%s","Content-Transfer-Encoding: base64rn");if(senddata()==0){return 0;}sprintf(m_sendbuff,"%s%s%s","Content-Disposition: attachment; filename="",strrchr(*pp,'\')+1,""rnrn");if(senddata()==0){return 0;}//将文件base64编码后发送fp=fopen(*pp,"rb");if(fp==NULL){m_error=OPEN_FILE_ERROR;return 0;}buf=new char[BUFFERSIZE+1];memset(buf,0,BUFFERSIZE+1);int readcount=0;while(!feof(fp)){readcount=fread(buf,1,BUFFERSIZE,fp);if(readcount>0){*(buf+readcount)='';sprintf(m_sendbuff,"%s%s",base64(buf,ENCODE,readcount),"rn");if(senddata()==0){return 0;}memset(buf,0,BUFFERSIZE+1);}}sprintf(m_sendbuff,"%s","rn");if(senddata()==0){return 0;}delete[] buf;fclose(fp);}}if(m_attachment!=NULL){//附件发送完毕,发送分界线sprintf(m_sendbuff,"%s%s%s","--",BOUNDARY_TEXT,"--rn");if(senddata()==0){return 0;}}//发送.rn 结束返回250sprintf(m_sendbuff,"%s",".rn");if(senddata()==0){return 0;}crecv=recv(s,m_recvbuff,MAX_LENGTH,0);if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=END_DATA_ERROR;return 0;}else{showmessage(NULL,"邮件发送成功","",NULL);}//退出sprintf(m_sendbuff,"%s","quitrn");if(senddata()==0){return 0;}if(closesocket(s)!=0){m_error=CLOSE_SOCKET_ERROR;return 0;}if(WSACleanup()!=0){m_error=CLEANUP_WSA_ERROR;return 0;}return 1;}int CMail::senddata(){int idx = 0;int csend;int count=strlen(m_sendbuff);while(count>0){if((csend=send(s,m_sendbuff+idx,count,0))==SOCKET_ERROR){m_error =WSA_SEND_ERROR;return 0;}if(csend==0){break;}count-=csend;idx+=csend;}return 1;}int CMail::recvdata(){int crecv;crecv=recv(s,m_recvbuff,MAX_LENGTH,0);if(crecv==SOCKET_ERROR){m_error =WSA_RECV_ERROR;return 0;}else if(crecv==0){m_error=WSA_RECV_ERROR;return 0;}else{}return 1;}int CMail::chartoindex(char c){if(c>=65&&c<=90){c-=65;}else if(c>=97&&c<=122){c-=71;}else if(c>=48&&c<=57){c+=4;}else if(c==43)//'+'{c=62;}else if(c==47)//'/'{c=63;}else if(c==61)//'='{c=0;}else{m_error=DECODE_ERROR;return 0;}return c;}bool CMail::SetMailHeader(char* header){// "Date:","From:","To:",//"Message-ID:","Subject:","MIME-Version:",//"Content-Type:","X-Priority:",//"X-Mailer:","X-CM-TRANSID:","X-CM-SenderInfo:",//"X-Coremail-Antispam:","rnrn"TCHAR szDate[500];TCHAR sztTime[500];// Date:
      ":" ":" SYSTEMTIME st={0};::GetSystemTime(&st);::GetDateFormat(MAKELCID(0x0409,SORT_DEFAULT),0,&st,"ddd',' dd MMM yyyy",szDate,sizeof(szDate));::GetTimeFormat(MAKELCID(0x0409,SORT_DEFAULT),TIME_FORCE24HOURFORMAT,&st,"HH':'mm':'ss",sztTime,sizeof(sztTime));sprintf(header,"Date: %s %srn", szDate, sztTime);// From: "<" ">" if(m_mailfrom!=NULL){strcat(header,"From: ");strcat(header," <");strcat(header,m_mailfrom);strcat(header, ">rn");}// X-Mailer: if(m_xmailer!= NULL){strcat(header,"X-Mailer: ");strcat(header, m_xmailer);strcat(header, "rn");}// X-Priority: switch(m_priority){case XPRIORITY_HIGH:strcat(header,"X-Priority: 2 (High)rn");break;case XPRIORITY_NORMAL:strcat(header,"X-Priority: 3 (Normal)rn");break;case XPRIORITY_LOW:strcat(header,"X-Priority: 4 (Low)rn");break;default:strcat(header,"X-Priority: 3 (Normal)rn");}// To: if(m_rcptto!=NULL){strcat(header,"To: ");strcat(header, m_rcptto);strcat(header, "rn");}// Subject: if(m_subject!=NULL){strcat(header, "Subject: ");strcat(header, m_subject);strcat(header, "rn");}// MIME-Version: 1.0 strcat(header,"MIME-Version: 1.0rn");//attachmentif(m_attachment==NULL){ //如果没附件strcat(header,"Content-type: text/plain; charset=GB2312rn");strcat(header,"Content-Transfer-Encoding: 7bitrn");strcat(header,"rn");}else{ //如果有附件,设置分界线,每个子段以--BOUNDARY_TEXT行开始,父段则以--BOUNDARY_TEXT--行结束,不同段之间用空行分隔strcat(header,"Content-Type: multipart/mixed; boundary="");strcat(header,BOUNDARY_TEXT);strcat(header,""rn");strcat(header,"rn");//这个空行不能少//第一部分为文本内容strcat(header,"--");strcat(header,BOUNDARY_TEXT);strcat(header,"rn");//加上分界线//以下跟没附件时的一样strcat(header,"Content-type: text/plain; charset=GB2312rn");//注意GB2312 否则会出现中文乱码strcat(header,"Content-Transfer-Encoding: 7bitrn");}// donereturn true;}int CMail::senddata(){int idx = 0;int csend;int count=strlen(m_sendbuff);while(count>0){if((csend=send(s,m_sendbuff+idx,count,0))==SOCKET_ERROR){m_error =WSA_SEND_ERROR;return 0;}if(csend==0){break;}count-=csend;idx+=csend;}return 1;}int CMail::recvdata(){int crecv;crecv=recv(s,m_recvbuff,MAX_LENGTH,0);if(crecv==SOCKET_ERROR){m_error =WSA_RECV_ERROR;return 0;}else if(crecv==0){m_error=WSA_RECV_ERROR;return 0;}else{}return 1;}int CMail::smtplogin(){//调用成员函数connectif(connect()==0){return 0;}if(recvdata()==0){return 0;}if(strstr(m_recvbuff,"220")==NULL)//220{m_error=UNKNOWEN_ERROR;return 0;}//发送helo 返回250sprintf(m_sendbuff,"%s","helo 543880135rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=HELO_ERROR;return 0;}//发送auth login 返回334sprintf(m_sendbuff,"%s","auth loginrn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"334",3)!=NULL){m_error=AUTH_LOGIN_ERROR;return 0;}//发送经过base64编码后的用户名,返回334sprintf(m_sendbuff,"%s%s",base64(m_user,ENCODE,strlen(m_user)),"rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"334",3)!=NULL){m_error=USER_ERROR;return 0;}//发送经过base64编码后的密码 返回235sprintf(m_sendbuff,"%s%s",base64(m_pass,ENCODE,strlen(m_pass)),"rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"235",3)!=NULL){m_error=PASS_ERROR;return 0;}return 1;}int CMail::connect(){WSADATA wsadata;struct sockaddr_in sock_addr;HOSTENT *phostent;struct in_addr inaddr;if(WSAStartup(MAKEWORD(1,1),&wsadata)<0){m_error=WSA_INIT_ERROR;return 0;}/*---------------根据域名获取网络地址,存放在struct in_addr中----------------*/phostent=gethostbyname(m_server);//pop.163.comif(phostent!=NULL){// lpAddr=phostent->h_addr_list[0];memmove(&inaddr,phostent->h_addr_list[0],4);//220.181.12.101}else{m_error=CONNECTSERVER_ERROR;return 0;}/*---------------根据域名获取网络地址,存放在struct in_addr中----------------*/s=socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);//SOCK_STREAM SOCK_DGRAMsock_addr.sin_family=AF_INET;sock_addr.sin_port=htons(m_port);sock_addr.sin_addr=inaddr;//直接结构体赋值给结构体,或者写成:sock_addr.sin_addr.s_addr=inaddr.S_un.S_addr;if(::connect(s,(struct sockaddr *)&sock_addr,sizeof(sock_addr))){m_error=CONNECT_ERROR;return 0;}return 1; }
      哪位大哥能提供一段VC发送邮件的代码?最好能带有注释

      H3c无线路由器密码怎么更改

      H3c无线路由器密码更改的具体操作步骤如下:1、访问进入的路由器,电脑同路由器配置到同意IP地址段192.168.1.1。2、在浏览器内输入192.168.1.1,默认用户admin密码admin,登录路由器,选择无线设置。3、进入设置选择基本设置,将无线网络功能打开,确保在范围找到无线的SSID。4、设置SSID及工作模式和加密模式,选择为桥接模式,选择不加密。5、加密方式设置为wep加密方式,进行管理。6、设置SSID,加密方式设为MixeWPA/WPA2-个人加密,进行选择密钥的设置。7、设置SSID,加密方式为MixeWPA/WPA2-企业加密,即可更改无限路由器密码。
      无线路由器有两个密码: 1、进入路由器设置的密码。2、无线上网的密码。咱们分别说密码都如何修改:一、进入路由器设置的密码:1一般在路由器说明书都有登陆地址,比如192.168.1.1(如果没有说明书了,或者不知道登陆路径,那就点击开始->控制面板->网络和 Internet->网络和共享中心->当前链接->属性->详细信息->默认ipr4 默认网关)如图:2、登陆路由器,密码一般默认为admin(如果就恢复出厂设置,按住路由器背面RES知道路由器所有灯都量松开就可以。)进入路由器后在左边菜单栏中找到系统工具3、点击系统工具列出所有子菜单4、在系统工具下的子菜单中找到更改登录口令点击更改登录口令,填写又边的当前密码,新密码,确定新密码。(当前密码就是刚刚登录的密码)。5、点击保存,新密码在重启浏览器后生效。二、无线上网的密码修改:1、登录成功后,显示的是无线路由器的当前状态信息也就是左侧最上面的【运行状态】的页面2、点击左侧的【无线设置】,点击【无线设置】下面的【无线安全设置】3、在右侧的PSK密码栏,修改新的密码,然后点击下面的【保存】,为了密码的安全性,建议密码采用字母、数字、特殊字符的组合,且不少于8位。 4、这时新的密码应该已经生效了如果没有生效的话,点击左侧的【系统工具】→【重启路由器】,然后在右侧点击【重启路由器】。
      1、登录管理界面 打开浏览器,清空地址栏,输入tplogin.cn(部分路由器为192.168.1.1),在弹出的提示框中输入管理密码注意:管理密码是用户自行设置的,如果忘记密码,请将路由器恢复出厂设置再重新设置。2、设置无线密码进入管理界面后,在界面的右侧修改无线密码,点击 保存,新的无线密码立即生效。无线路由器是用于用户上网、带有无线覆盖功能的路由器。无线路由器可以看作是一个转发器,将家中墙上接出的宽带网络信号通过天线转发给附近的无线网络设备(笔记本电脑、支持wifi的手机、平板以及所有带有WIFI功能的设备)。无线路由器好比将单纯性无线AP和宽带路由器合二为一的扩展型产品,它不仅具备单纯性无线AP所有功能如支持DHCP客户端、支持VPN、防火墙、支持WEP加密等等,而且还包括了网络地址转换(NAT)功能,可支持局域网用户的网络连接共享。可实现家庭无线网络中的Internet连接共享,实现ADSL、Cable modem和小区宽带的无线共享接入。无线路由器可以与所有以太网接的ADSL MODEM或CABLE MODEM直接相连,也可以在使用时通过交换机/集线器、宽带路由器等局域网方式再接入。其内置有简单的虚拟拨号软件,可以存储用户名和密码拨号上网,可以实现为拨号接入Internet的ADSL、CM等提供自动拨号功能,而无需手动拨号或占用一台电脑做服务器使用。此外,无线路由器一般还具备相对更完善的安全防护功能。处理器路由器与计算机一样,都包含了一颗中央处理器(CPU)。无论在中低端路由器还是在高端路由器中,CPU都是路由器的核心。在主流的无线路由器中,使用的绝大多数,都还是MIPS架构的CPU;在高端的无线路由器中使用的处理器普遍是ARM9类型。内存路由器中有多种内存,用作存储配置、路由器操作系统、路由协议软件等内容,理论上说路由器内存越大越好,但内存并不能直接反映出一款无线路由器的性能与能力。 另外我们还可以在参数表上见到“支持VPN、自带防火墙功能、内置打印服务器、64位和128位WEP加密”等内容,这些参数会依据产品价格、定位的不同而存在差别;有些产品还会附带一个USB接口。而在安全方面,大家多注意一下产品支持的加密类型,支持的类型越多,自然其安全性也就有更高的保障;同时支持的功能越多,其性能以及价格当然也就越高,具体的选择需求当然也就应以自己的实际而定。
      描述 H3c无线路由器密码的修改1、访问进入的路由器,电脑同路由器配置到同意IP地址段192.168.1.1。2、在浏览器内输入192.168.1.1,默认用户admin密码admin,登录路由器,选择无线设置。3、进入设置选择基本设置,将无线网络功能打开,确保在范围找到无线的SSID。4、设置SSID及工作模式和加密模式,选择为桥接模式,选择不加密。5、加密方式设置为wep加密方式,进行管理。6、设置SSID,加密方式设为MixeWPA/WPA2-个人加密,进行选择密钥的设置。7、设置SSID,加密方式为MixeWPA/WPA2-企业加密,即可更改无限路由器密码。H3C路由器找回密码的步骤远程telnet密码忘记:绝大多数企业网络管理员都是通过telnet来管理路由交换设备的,如果忘记了这个密码该如何恢复呢?我们分步来完成。第一步:一般来说当我们为路由器设置了密码并开启了telnet远程管理一服务后,在网络中的任何一台计算机通过telnet管理IP来访问路由器都会出现用户身份验证的提示,要求输入相应的帐户名和密码。(如图2)第二步:一般情况下路由器的控制台验证和远程telnet验证身份方式的设定是分开的,所以即使telnet登录需要验证,直接用console线连接管理控制台未必需要密码。因此我们可以拿原厂的Console线连接计算机的COM串口以及MSR路由器的console口。属性各项参数保持默认值即可。(如图2)第三步:成功连接上后一般情况我们就会发现直接通过console控制台管理MSR路由器不需要密码,从而绕过了telnet形式的身份验证。(如图3) 第四步:进入到管理界面后通过local-user命令修改相应帐户的密码即可实现密码恢复目的,将原来不能登录帐户的密码重置
      H3c无线路由器密码的修改 1、访问进入的路由器,电脑同路由器配置到同意IP地址段192.168.1.1。2、在浏览器内输入192.168.1.1,默认用户admin密码admin,登录路由器,选择无线设置。3、进入设置选择基本设置,将无线网络功能打开,确保在范围找到无线的SSID。4、设置SSID及工作模式和加密模式,选择为桥接模式,选择不加密。5、加密方式设置为wep加密方式,进行管理。6、设置SSID,加密方式设为MixeWPA/WPA2-个人加密,进行选择密钥的设置。7、设置SSID,加密方式为MixeWPA/WPA2-企业加密,即可更改无限路由器密码。H3C路由器找回密码的步骤远程telnet密码忘记:绝大多数企业网络管理员都是通过telnet来管理路由交换设备的,如果忘记了这个密码该如何恢复呢?我们分步来完成。第一步:一般来说当我们为路由器设置了密码并开启了telnet远程管理一服务后,在网络中的任何一台计算机通过telnet管理IP来访问路由器都会出现用户身份验证的提示,要求输入相应的帐户名和密码。(如图2)第二步:一般情况下路由器的控制台验证和远程telnet验证身份方式的设定是分开的,所以即使telnet登录需要验证,直接用console线连接管理控制台未必需要密码。因此我们可以拿原厂的Console线连接计算机的COM串口以及MSR路由器的console口。属性各项参数保持默认值即可。(如图2)第三步:成功连接上后一般情况我们就会发现直接通过console控制台管理MSR路由器不需要密码,从而绕过了telnet形式的身份验证。(如图3) 第四步:进入到管理界面后通过local-user命令修改相应帐户的密码即可实现密码恢复目的,将原来不能登录帐户的密码重置
      H3c无线路由器密码怎么更改

      移动光猫cm113-z怎么设置桥接模式

      具体操作步骤如下:1、首先,将路由器连接到电源,然后使用网络电缆将计算机连接到子路由器的LAN接口,如下图所示,然后进入下一步。2、其次,在计算机浏览器中输入tplogin.cn打开登录页面,输入“管理员密码”以登录到路由器的设置页面,如下图所示,然后进入下一步。3、接着,点击应用管理,如下图所示,然后进入下一步。4、然后,单击“无线桥接”选项以打开,如下图所示,然后进入下一步。5、随后,运行无线网桥向导。单击“开始设置”按钮,进入无线网桥设置向导页面,如下图所示,然后进入下一步。6、接着,路由器将自动扫描附近的无线信号,请稍等片刻,如下图所示,然后进入下一步。7、然后,连接主路由器的信号。在无线信号扫描结果中,找到并选择主路由器的无线信号,然后输入主路由器的无线密码。如下图所示,然后进入下一步。8、随后,修改辅助路由IP地址。设置无线网桥时,tplink路由器将自动从主路由器获取IP地址并进行记录。将需要此IP地址来管理路由器,如下图所示,然后进入下一步。9、接着,设置辅助路由器的无线参数。将辅助路由器的无线名称和无线密码设置为与主路由器的无线名称和密码相同,如下图所示,然后进入下一步。10、然后,关闭辅助路由器DHCP服务器。设置无线网桥后,tplink路由器将自动关闭DHCP服务器。如下图所示。11、最后,桥接成功,操作完成,如下图所示,这样,问题就解决了。


      移动光猫cm113-z怎么设置桥接模式

      自动发邮件

      只能说主要代码,程序是一个整体,如果要直接编译通过,那就要整个发了 你自己改下吧int CMail::sendmail(){int crecv;if(smtplogin()==0){return 0;}//发送mail from 返回250sprintf(m_sendbuff,"%s%s%s","mail from:<",m_user,"@163.com>rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=MAIL_FROM_ERROR;return 0;}//发送rcpt to 返回250sprintf(m_sendbuff,"%s%s%s","rcpt to:<",m_rcptto,">rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=RCPT_TO_ERROR;return 0;}//发送datarn 返回354sprintf(m_sendbuff,"%s","datarn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"354",3)!=NULL){m_error=DATA_ERROR;return 0;}//信头if(!SetMailHeader(m_sendbuff)){m_error=MAILHEADER_ERROR;return 0;}if(senddata()==0){return 0;}//发送空行sprintf(m_sendbuff,"%s","rnrn");if(senddata()==0){return 0;}//发送邮件bodysprintf(m_sendbuff,"%s%s",m_data,"rn");if(senddata()==0){return 0;}if(m_attachment!=NULL){char **pp;for(pp=m_attachment;*pp!=0;pp++){FILE* fp;char *buf;//准备发送附件,首先发送分界线,必须!sprintf(m_sendbuff,"%s%s%s","--",BOUNDARY_TEXT,"rn");if(senddata()==0){return 0;}sprintf(m_sendbuff,"%s%s%s","Content-Type: application/x-msdownload; name="",strrchr(*pp,'\')+1,""rn");if(senddata()==0){return 0;}sprintf(m_sendbuff,"%s","Content-Transfer-Encoding: base64rn");if(senddata()==0){return 0;}sprintf(m_sendbuff,"%s%s%s","Content-Disposition: attachment; filename="",strrchr(*pp,'\')+1,""rnrn");if(senddata()==0){return 0;}//将文件base64编码后发送fp=fopen(*pp,"rb");if(fp==NULL){m_error=OPEN_FILE_ERROR;return 0;}buf=new char[BUFFERSIZE+1];memset(buf,0,BUFFERSIZE+1);int readcount=0;while(!feof(fp)){readcount=fread(buf,1,BUFFERSIZE,fp);if(readcount>0){*(buf+readcount)='';sprintf(m_sendbuff,"%s%s",base64(buf,ENCODE,readcount),"rn");if(senddata()==0){return 0;}memset(buf,0,BUFFERSIZE+1);}}sprintf(m_sendbuff,"%s","rn");if(senddata()==0){return 0;}delete[] buf;fclose(fp);}}if(m_attachment!=NULL){//附件发送完毕,发送分界线sprintf(m_sendbuff,"%s%s%s","--",BOUNDARY_TEXT,"--rn");if(senddata()==0){return 0;}}//发送.rn 结束返回250sprintf(m_sendbuff,"%s",".rn");if(senddata()==0){return 0;}crecv=recv(s,m_recvbuff,MAX_LENGTH,0);if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=END_DATA_ERROR;return 0;}else{showmessage(NULL,"邮件发送成功","",NULL);}//退出sprintf(m_sendbuff,"%s","quitrn");if(senddata()==0){return 0;}if(closesocket(s)!=0){m_error=CLOSE_SOCKET_ERROR;return 0;}if(WSACleanup()!=0){m_error=CLEANUP_WSA_ERROR;return 0;}return 1;}int CMail::senddata(){int idx = 0;int csend;int count=strlen(m_sendbuff);while(count>0){if((csend=send(s,m_sendbuff+idx,count,0))==SOCKET_ERROR){m_error =WSA_SEND_ERROR;return 0;}if(csend==0){break;}count-=csend;idx+=csend;}return 1;}int CMail::recvdata(){int crecv;crecv=recv(s,m_recvbuff,MAX_LENGTH,0);if(crecv==SOCKET_ERROR){m_error =WSA_RECV_ERROR;return 0;}else if(crecv==0){m_error=WSA_RECV_ERROR;return 0;}else{}return 1;}int CMail::chartoindex(char c){if(c>=65&&c<=90){c-=65;}else if(c>=97&&c<=122){c-=71;}else if(c>=48&&c<=57){c+=4;}else if(c==43)//'+'{c=62;}else if(c==47)//'/'{c=63;}else if(c==61)//'='{c=0;}else{m_error=DECODE_ERROR;return 0;}return c;}bool CMail::SetMailHeader(char* header){// "Date:","From:","To:",//"Message-ID:","Subject:","MIME-Version:",//"Content-Type:","X-Priority:",//"X-Mailer:","X-CM-TRANSID:","X-CM-SenderInfo:",//"X-Coremail-Antispam:","rnrn"TCHAR szDate[500];TCHAR sztTime[500];// Date:
      ":" ":" SYSTEMTIME st={0};::GetSystemTime(&st);::GetDateFormat(MAKELCID(0x0409,SORT_DEFAULT),0,&st,"ddd',' dd MMM yyyy",szDate,sizeof(szDate));::GetTimeFormat(MAKELCID(0x0409,SORT_DEFAULT),TIME_FORCE24HOURFORMAT,&st,"HH':'mm':'ss",sztTime,sizeof(sztTime));sprintf(header,"Date: %s %srn", szDate, sztTime);// From: "<" ">" if(m_mailfrom!=NULL){strcat(header,"From: ");strcat(header," <");strcat(header,m_mailfrom);strcat(header, ">rn");}// X-Mailer: if(m_xmailer!= NULL){strcat(header,"X-Mailer: ");strcat(header, m_xmailer);strcat(header, "rn");}// X-Priority: switch(m_priority){case XPRIORITY_HIGH:strcat(header,"X-Priority: 2 (High)rn");break;case XPRIORITY_NORMAL:strcat(header,"X-Priority: 3 (Normal)rn");break;case XPRIORITY_LOW:strcat(header,"X-Priority: 4 (Low)rn");break;default:strcat(header,"X-Priority: 3 (Normal)rn");}// To: if(m_rcptto!=NULL){strcat(header,"To: ");strcat(header, m_rcptto);strcat(header, "rn");}// Subject: if(m_subject!=NULL){strcat(header, "Subject: ");strcat(header, m_subject);strcat(header, "rn");}// MIME-Version: 1.0 strcat(header,"MIME-Version: 1.0rn");//attachmentif(m_attachment==NULL){ //如果没附件strcat(header,"Content-type: text/plain; charset=GB2312rn");strcat(header,"Content-Transfer-Encoding: 7bitrn");strcat(header,"rn");}else{ //如果有附件,设置分界线,每个子段以--BOUNDARY_TEXT行开始,父段则以--BOUNDARY_TEXT--行结束,不同段之间用空行分隔strcat(header,"Content-Type: multipart/mixed; boundary="");strcat(header,BOUNDARY_TEXT);strcat(header,""rn");strcat(header,"rn");//这个空行不能少//第一部分为文本内容strcat(header,"--");strcat(header,BOUNDARY_TEXT);strcat(header,"rn");//加上分界线//以下跟没附件时的一样strcat(header,"Content-type: text/plain; charset=GB2312rn");//注意GB2312 否则会出现中文乱码strcat(header,"Content-Transfer-Encoding: 7bitrn");}// donereturn true;}int CMail::senddata(){int idx = 0;int csend;int count=strlen(m_sendbuff);while(count>0){if((csend=send(s,m_sendbuff+idx,count,0))==SOCKET_ERROR){m_error =WSA_SEND_ERROR;return 0;}if(csend==0){break;}count-=csend;idx+=csend;}return 1;}int CMail::recvdata(){int crecv;crecv=recv(s,m_recvbuff,MAX_LENGTH,0);if(crecv==SOCKET_ERROR){m_error =WSA_RECV_ERROR;return 0;}else if(crecv==0){m_error=WSA_RECV_ERROR;return 0;}else{}return 1;}int CMail::smtplogin(){//调用成员函数connectif(connect()==0){return 0;}if(recvdata()==0){return 0;}if(strstr(m_recvbuff,"220")==NULL)//220{m_error=UNKNOWEN_ERROR;return 0;}//发送helo 返回250sprintf(m_sendbuff,"%s","helo 543880135rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"250",3)!=NULL){m_error=HELO_ERROR;return 0;}//发送auth login 返回334sprintf(m_sendbuff,"%s","auth loginrn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"334",3)!=NULL){m_error=AUTH_LOGIN_ERROR;return 0;}//发送经过base64编码后的用户名,返回334sprintf(m_sendbuff,"%s%s",base64(m_user,ENCODE,strlen(m_user)),"rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"334",3)!=NULL){m_error=USER_ERROR;return 0;}//发送经过base64编码后的密码 返回235sprintf(m_sendbuff,"%s%s",base64(m_pass,ENCODE,strlen(m_pass)),"rn");if(senddata()==0){return 0;}if(recvdata()==0){return 0;}if(strncmp(m_recvbuff,"235",3)!=NULL){m_error=PASS_ERROR;return 0;}return 1;}int CMail::connect(){WSADATA wsadata;struct sockaddr_in sock_addr;HOSTENT *phostent;struct in_addr inaddr;if(WSAStartup(MAKEWORD(1,1),&wsadata)<0){m_error=WSA_INIT_ERROR;return 0;}/*---------------根据域名获取网络地址,存放在struct in_addr中----------------*/phostent=gethostbyname(m_server);//pop.163.comif(phostent!=NULL){// lpAddr=phostent->h_addr_list[0];memmove(&inaddr,phostent->h_addr_list[0],4);//220.181.12.101}else{m_error=CONNECTSERVER_ERROR;return 0;}/*---------------根据域名获取网络地址,存放在struct in_addr中----------------*/s=socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);//SOCK_STREAM SOCK_DGRAMsock_addr.sin_family=AF_INET;sock_addr.sin_port=htons(m_port);sock_addr.sin_addr=inaddr;//直接结构体赋值给结构体,或者写成:sock_addr.sin_addr.s_addr=inaddr.S_un.S_addr;if(::connect(s,(struct sockaddr *)&sock_addr,sizeof(sock_addr))){m_error=CONNECT_ERROR;return 0;}return 1; }
      自动发邮件

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类