我做了一个利用TNMSMTP和TNMPOP3控件收发电子邮件的小程序,可是给NMSMTP.Host赋值老是出错。
    如:设NMSMTP.Host:='163.com';()
请教:错在哪呢?给NMSMTP.Host应该如何赋值呢?谢

解决方案 »

  1.   

    NMSMTP.Host:='smtp.163.com';///这样就可以了但现在的服务器大多需要验证身份了,还要加点东西才能发送!
      

  2.   

    现在的服务器大多需要验证身份了,还要加点东西才能发送!!
    给你一段我C++的代码{Mcount和Mcode是SMTP要验证的用户名和密码
     char EncName[64],EncPsw[64];
          memset(EncName,0,64);
          memset(EncPsw,0,64);      MailForm->Base64Encod(Mcount.c_str(),Mcount.Length(),EncName);
          MailForm->Base64Encod(Mcode.c_str(),Mcode.Length(),EncPsw);       StatusBar1->Panels->Items[1]->Text = "连接中";       if(NMSMTP1->ReplyNumber==250)
             NMSMTP1->Transaction("auth login");       if(NMSMTP1->ReplyNumber==334)
             NMSMTP1->Transaction(EncName);       if(NMSMTP1->ReplyNumber==334)
             NMSMTP1->Transaction(EncPsw);       if(NMSMTP1->ReplyNumber==235)
            StatusBar1->Panels->Items[1]->Text = "与服务器连接成功";
    }
    int  TMailForm::Base64Encod(char *buftoenc,int bufsize,char *encbuf)
    {
       int i=0;
       int b64byte[5];
       unsigned char *buftemp;   //Allocate space for the temporary string
       buftemp=(unsigned char *)malloc(bufsize+2);
       strcpy(buftemp,buftoenc);
       if (bufsize%3==1)
       {
          buftemp[bufsize]='\0';
          buftemp[bufsize+1]='\0';
       }
       if (bufsize%3==2)buftemp[bufsize]='\0';
       while (i<bufsize)
       {
          b64byte[0]=buftemp[i]>>2;
          b64byte[1]=((buftemp[i]&3)<<4)|(buftemp[i+1]>>4);
          b64byte[2]=((buftemp[i+1]&0x0F)<<2)|(buftemp[i+2]>>6);
          b64byte[3]=buftemp[i+2]&0x3F;
          encbuf[i+(i/3)]=Base64Table[b64byte[0]];
          encbuf[i+(i/3)+1]=Base64Table[b64byte[1]];
          encbuf[i+(i/3)+2]=Base64Table[b64byte[2]];
          encbuf[i+(i/3)+3]=Base64Table[b64byte[3]];
          i+=3;
       }
       free(buftemp);
       if (bufsize%3==0)return bufsize*8/6;
       if (bufsize%3==1)return((bufsize+2)*8/6)-2;
       if (bufsize%3==2)return((bufsize+1)*8/6)-1;
       return -1;
    }
      

  3.   

    static const char Base64Table[64]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
      

  4.   

    http://www.stgzs.myetang.com/Hack/DelphiTechV1.5.chm
    下载这个东东,里面好多你所想要的!!!
      

  5.   

    包括用NMSMTP发验证身份的邮件!