当前位置: 技术问答>linux和unix
linux c/c++ 发送邮件程序的附件问题
来源: 互联网 发布时间:2016-09-15
本文导语: 本帖最后由 lb_rain 于 2010-07-29 10:22:35 编辑 我在linux下用c++实现邮件发送功能 按照smtp协议socket交互消息 目前邮件可以发送出去,抄送,密送都实现了。 文本文件的附件也可以。 但是非文本文件的附件发送就有问题,...
按照smtp协议socket交互消息
目前邮件可以发送出去,抄送,密送都实现了。
文本文件的附件也可以。
但是非文本文件的附件发送就有问题,比如图片,rar压缩包
比对正常邮件属性,好像我发送的非文本文件中间被截断了,下面是我构建附件的原始代码。
...
// 打开文件描述符
if((fp = fopen(szFile,"rb")) == NULL)
{
fclose(fp);
return false;
}
while (!feof(fp))
{
if (fgets(buffer, MAX_BUF_SIZE, fp) == NULL)
{
continue;
}
// 字符流长度累加,去掉结尾 '', 因为strcat会自动去掉''.
iFileSize += strlen(buffer) - 1;
if (iFileSize m_sAttachName, szEncodedBuffer);
...
其他方式,fread、read、fstream 我也都试过了,块读入后,能够返回文件大小,感觉上是读取了文件,但发送的文件内容更短。
这个问题困扰我三天了,在这里问问各位老师,是否是我拼接字符串的方法不当啊?
在线等。。。
|
这个其实简单,把szBuffer中的内容直接保存到一个文件中,然后用diff命令比较一下两个文件。看看是不是一样就知道了。
|
把
iFileSize += strlen(buffer) - 1;
if (iFileSize