免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2352 | 回复: 7

[C] 发送邮件的疑惑 [复制链接]

论坛徽章:
0
发表于 2008-11-30 17:22 |显示全部楼层
5可用积分
奇怪,我在linux下写了一个发邮件的程序,发送附件是txt格式的文件就可以,发送jpg格式的文件时,服务器返回错误码421,说是服务不可用,这是什么原因?

评分

参与人数 1信誉积分 -10 收起 理由
samon_fu -10 兄弟,悬赏太久就不管了,是要扣信誉分 ...

查看全部评分

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
发表于 2008-11-30 17:47 |显示全部楼层
base64编码了么?

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
发表于 2008-11-30 20:09 |显示全部楼层
使用通用的邮件客户端能否成功发送该图片。
如成功看一下邮件原信息中的邮件格式,附件格式等

论坛徽章:
0
发表于 2008-11-30 20:30 |显示全部楼层
在linux有什么工具是发邮件的?没用过

我写的源码在附件
为什么发送txt的附件就可以呢?我怀疑是格式的设置有问题。
请看看源码

smtptest-OK-mod.rar

3.9 KB, 下载次数: 40

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
发表于 2008-12-01 03:10 |显示全部楼层
收藏

评分

参与人数 1可用积分 -10 收起 理由
net_robber -10 恶意灌水

查看全部评分

论坛徽章:
0
发表于 2008-12-01 09:57 |显示全部楼层
把邮件的发送命令贴出来,,,

论坛徽章:
0
发表于 2008-12-01 10:37 |显示全部楼层
楼主能确定在发送哪个命令后返回的421错误吗?

我记得很多邮件出于对服务效率的考虑,不会对信体进行详细的检查!

难道是邮件网关报的错?

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
发表于 2008-12-01 15:37 |显示全部楼层
原帖由 chealim 于 2008-11-30 20:30 发表
在linux有什么工具是发邮件的?没用过

我写的源码在附件
为什么发送txt的附件就可以呢?我怀疑是格式的设置有问题。
请看看源码

421是smtp.163.com返回的吗?
你发送的图片没有超过邮箱里附件大小限制吧,另外还有是否被当成垃圾邮件之类的(我没找到163邮箱把图片当垃圾的设置)。

163新申请的邮箱不开启smtp和pop3,  我用sina邮箱可以发送jpg图片(24.2k没测试大文件).
测试时修改了一些代码去掉部分警告和错误。但没改动邮件格式。
11 #include <netinet/in.h>
12 #include <sys/socket.h>
13 #include <arpa/inet.h>
...
644         //  mybase64.b64encode((char *)datasrc, (char *)datades);
645
646         Base64Encode22((unsigned char *)datades, (unsigned char *)datasrc, stringlen);
647
648         //for( timedelay=0; timedelay<100; timedelay++) {
649         //  for( timedelay1=0; timedelay1<100; timedelay1++);

650                 rt = send(s, (char *)datades, strlen((char *)datades), 0);
651         //}
652
653         //rt = send(s,(char *)datades,sendlen,0);
...
739     if(argc < 1)
740         {
741         printf("agrv error\n");
742         free(m_data);
743     }
744
745     strcpy(m_data, "this is mail content");
...
781     char m_data64[256];
782     Base64_Code((unsigned char *)m_data, (unsigned char *)m_data64);
783     if(!SendMail(m_From, m_To, m_date, m_Subject, m_data64))
784     {
785         printf("send mail error\n");
786         return -1;
787     }
...
790 //  if(SendAffix("test.txt") != 1)
791     if(1 != SendAffix("test.jpg"))
792     {
793         printf("send affix error\n");
794     }
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP