SOCKET编写 SMTP发邮件的程序 发送数据时的一点问题!

subin8 2008-12-15 09:34:08

send( client, "登陆代码就不写了 省略掉.." );
send( client, "到这里 DATA" );
/*正确的!*/
char test_str1[]="To:154336958@qq.com\nFrom:webmaster@admin.com\nSubject:test admin\naaaaaaaaaa\n.\n";
bytesSent = send( client, test_str1, strlen(test_str1), 0 );
/*这样就可以把邮件发送过去*/
/*错误的!*/
char test_str1[]="To:154336958@qq.com\nFrom:webmaster@admin.com\nSubject:test admin\naaaaaaaaaa\n";
char test_str2[]="............";
char test_str3[]="\n.\n";
bytesSent = send( client, test_str1, strlen(test_str1), 0 );
bytesSent = send( client, test_str2, strlen(test_str2), 0 );
bytesSent = send( client, test_str3, strlen(test_str3), 0 );


我对C语言不是太了解.
当我发送完 DATA后
只可以再发送一条数据了.

但是不可能发邮件如果附件很大的话一数据库根本发不过去啊!
...全文
238 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangboqun99 2009-01-06
  • 打赏
  • 举报
回复
学习中
D_cowboy 2009-01-04
  • 打赏
  • 举报
回复
建议楼主把SMTP协议好好看一下,明白HELO、 MAIL FROM、 RCPT TO、 DATA指令的含义以及SMTP的处理流程再来写程序
PS:可以用TELNET到一台邮件服务器的25端口上模拟一下
zephyr_23 2008-12-27
  • 打赏
  • 举报
回复
晕,发送附件什么的,是走ftp,或者http的,是有应用层协议交互的。
arong1234 2008-12-21
  • 打赏
  • 举报
回复
如果看了那个就得直接用socket发了,SMTP、POP3和IMAP4本来就是建立在TCP上得
当然,如我上面所言,不应该直接用socket,楼主应该看各种邮件类库,如CDOSYS
[Quote=引用 3 楼 cdbdyx 的回复:]
大哥,你这直接用socket发送邮件啊,那还用smtp和pop3干啥啊,要去看rfc821,rfc822,rfc1939
[/Quote]
arong1234 2008-12-21
  • 打赏
  • 举报
回复
这和C语言无关了,其实这和socket有关。socket一个send不能保证把所有文本都发出去的,你看看send的返回值说明就应该明白的。
而且,smtp要的是\r\n,单个\n也又问题
一般SMTP不用socket自己写,因为这里有很多复杂的东西要处理,如验证、MIME,对方服务器的回复也必须处理,因为SMTP指令需要根据对方回复进行调整的,不是随便就可以发的
subin8 2008-12-21
  • 打赏
  • 举报
回复
小弟不明白。。
充电宝111 2008-12-16
  • 打赏
  • 举报
回复
大哥,你这直接用socket发送邮件啊,那还用smtp和pop3干啥啊,要去看rfc821,rfc822,rfc1939
lala_benben 2008-12-16
  • 打赏
  • 举报
回复
你要看下SMTP的协议~~~
jqx_ah 2008-12-16
  • 打赏
  • 举报
回复
友情UP

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧