关于C语言实现SMTP,该如何解决

关于C语言实现SMTP
我之前验证过程已经无误,只是在发送数据时不能成功,对于QQSMTP 服务器返回354 END data whith <cr><lf>.<cr><lf>
而这一段的代码是
C/C++ code

char buf_5[100]="DATA\r\n";
    send(hSocket,buf_5,strlen(buf_5),0);
    //接受data之后的消息
    memset(szRcvBuffer,0,1024);
    recv(hSocket,szRcvBuffer,1024,0);
    cout<<"发送DATA之后的消息"<<szRcvBuffer<<endl;
    //发送数据消息确定主题
    char buf_6[1024]="subject :Test Mail\r\n";
    send(hSocket,buf_6,strlen(buf_6),0);
    
    //显示发件人
    char buf_8[102]="FROM:674026565@qq.com\r\n";
    send(hSocket,buf_8,strlen(buf_8),0);
    //显示收件人
    char buf_9[100]="TO:2507731779@qq.com\r\n";
    send(hSocket,buf_9,strlen(buf_9),0);
    char buf_10[10]="    \r\n";
    send(hSocket,buf_10,strlen(buf_10),0);
    //发送quit消息
    char buf_11[10]= " hehe.\r\n.";
    int a=send(hSocket,buf_11,strlen(buf_11),0);
    char  buf_7[20]="QUIT\r\n";
    int b=send(hSocket,buf_7,strlen(buf_7),0);
    //接受QUIT之后消息
    memset(szRcvBuffer,0,1024);    
    recv(hSocket,szRcvBuffer,1024,0);
    cout<<"QUIT之后的消息"<<szRcvBuffer<<endl;
    closesocket(hSocket);

是不是在DATA结束后还要发个特定的字符以表示主体结束啊?求助。。。

------解决方案--------------------
我原来写了一个SMTP的实现例子:你可以去参考,见我的博客
http://blog.****.net/kuzuozhou/article/details/7339945