免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8833 | 回复: 16
打印 上一主题 下一主题

[C++] [求助]------如何用C++实现发邮件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-16 15:56 |只看该作者 |正序浏览
我想用C++程序来实现发电子邮件功能,请那位大虾指点一下。
最好在讲解的同时,也能给举些例子。谢谢~~~

论坛徽章:
0
17 [报告]
发表于 2006-03-22 15:00 |只看该作者
标准C++中没有网络的库,你想发邮件的话只能借助于各个平台的类库了.用Python写然后C++调用也是个办法但是有点………………

论坛徽章:
0
16 [报告]
发表于 2006-03-22 14:31 |只看该作者
感谢大家帮忙!!!

论坛徽章:
0
15 [报告]
发表于 2006-03-22 14:29 |只看该作者
原帖由 撒哈拉里的鱼 于 2006-3-22 14:18 发表
你的意思应该就是一个简单的能够向邮件服务器发送邮件的客户端对吧?
这样的话,在windows下面,你先将要发送的内容进行BASE64编码,再建立socket,连接到你的smtp服务器。然后按照smtp协议发送数据。可能包括, ...



恩!基本上看明白了你的思路,我再去查查相关资料看看!

论坛徽章:
0
14 [报告]
发表于 2006-03-22 14:27 |只看该作者
原帖由 mengwg 于 2006-3-22 10:29 发表
偷懒点做法,也可以试试onlyit的类库,那基本是平台无关的,直接基于协议实现,适用于win unix linux。

[code]
onlyit类库中提供了利用smtp协议发送邮件的类TSmtp。
TSmtp支持附件,同时发给多个用户。
定义 ...




谢谢

好详细啊!呵呵,比较适合我这种菜鸟。

我研究一下,看看能弄出来不!~

论坛徽章:
0
13 [报告]
发表于 2006-03-22 14:18 |只看该作者
你的意思应该就是一个简单的能够向邮件服务器发送邮件的客户端对吧?
这样的话,在windows下面,你先将要发送的内容进行BASE64编码,再建立socket,连接到你的smtp服务器。然后按照smtp协议发送数据。可能包括,身份认证,发送,断开等步骤。

论坛徽章:
0
12 [报告]
发表于 2006-03-22 12:30 |只看该作者
你也可以模拟SMTP协议,其时SMTP协议是很简单的,只需要一个BASE64算法就可以了,
通过telent your.smtp.server 25  可以手动实现整个过程,不过服务器都有一些特定的规则,
1. 有的服务器在连接之后发送AUTH LOGIN指令之前要先发送HELO指令
2. 有的服务器不能连续在一个时间段内用同一个帐户登录,不能连续发送两封以上的邮件。
我前段时间在测试SMTP的时候发现了这两个问题,并且一旦出现上述问题,服务器会主动关闭SOCKET连接。

论坛徽章:
0
11 [报告]
发表于 2006-03-22 10:29 |只看该作者
偷懒点做法,也可以试试onlyit的类库,那基本是平台无关的,直接基于协议实现,适用于win unix linux。


  1. onlyit类库中提供了利用smtp协议发送邮件的类TSmtp。
  2. TSmtp支持附件,同时发给多个用户。
  3. 定义的头文件 smtp.h

  4. 下面是一段例子程序:
  5. TSmtp smtp;

  6.   //设置邮件主机
  7.   smtp.Set_Host("smtp.263.net");
  8.   //设置邮件主机接收端口
  9.   smtp.Set_Port(25);
  10.   //设置验证用户名
  11.   smtp.Set_User("menang");
  12.   //设置验证用户密码
  13.   smtp.Set_Passwd("xxxxx");
  14.   //设置发送邮箱
  15.   smtp.Set_Sender("menang @263.net");
  16.   //设置接收邮箱
  17.   smtp.Set_Target("hdssz@263.net");
  18.   //增加接收邮箱
  19.   smtp.Add_Target("h2ds3sz@163.net");
  20.   //附上一个文件
  21.   smtp.Attach_File("c:\\vwd.log");
  22.   //设置邮件正文
  23.   smtp.Set_Msg_Body("这是一份测试mail\r\n.\r\nskdl");
  24.   //设置邮件标题
  25.   smtp.Set_Subject("这是测试123");
  26.   //发送邮件
  27.   if(smtp.Send())
  28.     printf("send ok\n");
  29.   else
  30. printf("send failure\n");
复制代码

论坛徽章:
0
10 [报告]
发表于 2006-03-21 17:39 |只看该作者
用socket的方法实现一个。

需要了解相关的知识: dns协议 smtp协议 pop3协议。
这几个协议相比之下还是dns稍微烦那么一点点。

论坛徽章:
0
9 [报告]
发表于 2006-03-21 15:59 |只看该作者
原帖由 撒哈拉里的鱼 于 2006-3-21 11:22 发表


不是难,是你自己不喜欢学习。
刚才还有人说要什么头文件,要那干吗?
只要有socket,还发不出去邮件?




我在学啊!

看了大家的回帖后,Linux下发邮件已经基本搞定了。
现在弄Windows下的呢,那个python脚本方法研究了,但实在没什么头绪。
现在研究一下你这个方法,能具体点吗?
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP