2 meetings meetings 于 2016.04.28 09:39 提问

邮件发送遇到问题,最后这个“.”发送失败
 BOOL CSmtp::SendEnd() /*发送结尾信息*/
{

    CString sendBuff;
    sendBuff = ".\r\n";
    return Send(sendBuff);

}


BOOL CSmtp::Send(CString &message)
{
    int n = message.GetLength();
    string msg = message.GetBuffer(n);
    char msg_buff[10240] = { 0 };
    strcpy(msg_buff, msg.c_str());
    int err = send(sockClient, msg_buff, n, 0);
    if (err == SOCKET_ERROR)
    {
        return FALSE;
    }
    cout << message << endl;
    return TRUE;
}

图片说明

3个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.28 09:55

你不用字符串,用BYTE数组等来发送数据

meetings
meetings BOOL CSmtp::SendEnd() /*发送结尾信息*/ { BYTE point={'.'}; CString sendBuff; memcpy((void*)sendBuff.GetBuffer(sendBuff.GetLength()),(const void *)point,sizeof(point)); return Send(sendBuff); }
一年多之前 回复
qq_34526679
qq_34526679   2016.04.28 10:03

你不用字符串,用BYTE数组等来发送数据

meetings
meetings   2016.04.29 08:41

BOOL CSmtp::SendEnd() /*发送结尾信息*/
{

    BYTE point={'.'};
    CString sendBuff;
    memcpy((void*)sendBuff.GetBuffer(sendBuff.GetLength()),(const void *)point,sizeof(point));
    return Send(sendBuff);

}

改成这样,程序直接停止运行

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!