Linux系统下发送Email的C语言代码

来源:asp之家 时间:2010-03-12 18:58:00 

现在很多用户都是自动获取ip,而不是固定不变的,现在作个简单的程序,在他每次上网后,把他的ip自动发给我指定的email。实现很简单(当然,前提是你有相应的权限,:D),通过调用system(),把程序路径放到/etc/rc.local里,以便每次启动调用。利用ifconfig获取ip,并写到一个临时文件,然后读文件内容到缓冲区,作为email正文发送到指定的email。以163.com的smtp服务器为例,现在的smtp服务器都加入了验证功能(不同服务器验证的方式是不同的,sina的验证就不同,具体的验证方式没有研究),通讯的过程是这样的:

[root@localhost root]# telnet smtp.163.com 25
Trying 202.108.44.170...
Connected to smtp.163.com.
Escape character is '^]'.
220 Coremail SMTP(Anti Spam) System (163com[20030606])
ehlo smtp.163.com
250-192.168.1.170
250-PIPELINING
250-AUTH LOGIN PLAIN NTLM
250-AUTH=LOGIN PLAIN NTLM
250 8BITMIME
auth login
334 VXNlcm5hbWU6
xxxxxx(base64编码过的用户名)
334 UGFzc3dvcmQ6
xxxxx(base64编码过的密码)
235 Authentication successful
mail from:gyfxlt8.go@163.com
250 Ok
rcpt to:gymiles@sohu.com
250 Ok
data
354 End data with .
test
.
250 Ok: queued as IMA5dQQvoEEGyE4C.1
quit
221 Bye
Connection closed by foreign host.


smtp server返回值表

500 邮箱地址错误
501 参数格式错误
502 命令不可实现
503 服务器需要SMTP验证
504 命令参数不可实现
421 服务未就绪,关闭传输信道
450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)
550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)
451 放弃要求的操作;处理过程中出错
551 用户非本地,请尝试
452 系统存储不足,要求的操作未执行
552 过量的存储分配,要求的操作未执行
553 邮箱名不可用,要求的操作未执行(例如邮箱格式错误)
432 需要一个密码转换
534 认证机制过于简单
538 当前请求的认证机制需要加密
454 临时认证失败
530 需要认证
220 服务就绪
250 要求的邮件操作完成
251 用户非本地,将转发向
354 开始邮件输入,以.结束
221 服务关闭传输信道
334 服务器响应验证Base64字符串
235 验证成功


标签:linux,系统,email,smtp服务器
0
投稿

猜你喜欢

  • 饭团:网络推广之精准推广 也许飞的更高

    2009-04-18 19:52:00
  • GoDaddy:如何添加流量 Godaddy

    2010-04-10 12:41:00
  • SNS新理念 用web1.0的模式来做web2.0

    2009-01-15 10:13:00
  • V5mall震撼出击 剑指C2C多用户商城

    2010-03-13 12:51:00
  • 新手建站指南

    2007-11-07 17:20:00
  • AdSense点击率高账户会被停用吗?

    2007-11-20 12:23:00
  • 微软Win 7系统vs苹果雪豹:哪个升级更划算

    2009-09-30 16:20:00
  • 51wan“寻找女一号”总决赛 全国佳丽14日终极PK

    2009-11-12 11:01:00
  • Linux下rsync远程数据同步命令的详细介绍

    2023-08-28 12:27:17
  • 美国主机Godaddy优化后速度超过国内

    2010-04-07 12:47:00
  • 个人站长创业需要注意的几点

    2008-12-23 08:57:00
  • 回李彦宏:评价一个搜索引擎的好坏是什么

    2007-10-14 09:38:00
  • 美国当前较流行十大Windows主机提供商推荐

    2010-02-28 13:13:00
  • 如何处理IIS超时事件?

    2010-06-26 19:20:00
  • linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)

    2023-11-05 07:11:13
  • Linux使用logrotate来切割日志文件

    2022-02-23 17:42:37
  • 谷歌发布网页浏览器安全手册

    2008-12-12 12:05:00
  • 事半功倍做营销:“转化率”再优化

    2009-03-16 09:39:00
  • CentOS8中的nmcli使用详解

    2023-10-11 17:02:14
  • 最完善方法 优化Windows服务器磁盘性能

    2007-09-06 14:47:00
  • asp之家 网站运营 m.aspxhome.com