smtp

Linux mail命令使用

http://blog.csdn.net/c395565746c/article/details/6011731

 

linux c/c++ 发送邮件程序的附件问题

http://bbs.csdn.net/topics/340224854

 

Ubuntu下使用最常用的mail功能,需要安装mailutils,安装命令:sudo apt-get install mailutils
使用带附件的功能,则还需要安装sharutils,安装命令:sudo apt-get install sharutils;yum install sharutils
redhat下需要启动sendmail服务:/etc/init.d/sendmail start

常用发送邮件方式如下:

    1.如何写一般的邮件: mail flynewton@gmail 编辑抄送对象,邮件主题,邮件正文后,按Ctrl-D结束

    2.快速发送方式: echo “邮件正文” | mail -s 邮件主题 flynewton@gmail.com

    3.以文件内容作为邮件正文来发送: mail -s test flynewton@gmail.com < test.txt

    4.发送带附件的邮件: uuencode 附件名称 附件显示名称 | mail -s 邮件主题 发送地址

       例如: uuencode test.txt test.txt | mail -s Test flynewton@gmail.com

 

linux mail命令用法

http://www.cnblogs.com/xiaoshi1991/archive/2012/09/20/2695061.html

Linux下自动发送邮件程序

http://blog.csdn.net/redeg/article/details/6167429

自动发送邮件的本质其实就是socket交互,发送一系列验证信息、邮件信息等。流程大致如下:

    1. 初始化socket,包括设置邮件服务器地址和端口;

    2. 连接至邮件服务器,获取欢迎信息;

    3. 发送验证消息,包括EHLO、AUTH LOGIN、用户名和密码等,要注意的是,用户名和密码必须经过base64编码,这个linux系统本身就带了这个工具;

    4. 发送标题和正文,需要注意编码。

    整个过程中需要注意的是宽字符与ASCII码之间的转换,因为诸如邮件内容可能是宽字符的,而socket函数,比如send之类的所用的buffer则是char 的指针或数组。

smtp连接和发送过程

(1)建立TCP 连接。
(2)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;服务器端正希望以OK作为响应,表明准备接收。
(3)客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行;服务器端则表示是否愿意为收件人接收邮件。
(4)协商结束,发送邮件,用命令DATA发送。
(5)以“.”号表示结束输入内容一起发送出去,结束此次发送,用QUIT命令退出。
 
 

libcurl发送邮件C++类

http://blog.csdn.net/jaylong35/article/details/7210291

 

 

 

stmp正常的报文:

  1 220 mail.nationalchip.com ESMTP M3M
  2 EHLO yingc@nationalchip.com
  3         : 250-mail.nationalchip.com
  4 250-PIPELINING
  5 250-SIZE 26624000
  6 250-ETRN
  7 250-STARTTLS
  8 250-AUTH PLAIN LOGIN
  9 250-AUTH=PLAIN LOGIN
 10 250-ENHANCEDSTATUSCODES
 11 250-8BITMIME
 12 250 DSN
 13 AUTH LOGIN
 14         : 334 VXNlcm5hbWU6
 15 。。。。。。。。。。。//邮箱
 16         : 334 UGFzc3dvcmQ6
 17 .。。。。。。。。。。//mima
 18         : 235 2.7.0 Authentication successful
 19 MAIL FROM: <yingc@nationalchip.com>
 20         : 250 2.1.0 Ok
 21 RCPT TO: <jingzhishen@126.com>
 22         : 250 2.1.5 Ok
 23 DATA
 24         : 354 End data with <CR><LF>.<CR><LF>
 25
 26 .
 27         : 250 2.0.0 Ok: queued as 73D2E170001
 28 QUIT
 29         : 221 2.0.0 Bye

 

 

 

 

  1 220 mail.nationalchip.com ESMTP M3M
  2 EHLO yingc@nationalchip.com
  3         : 250-mail.nationalchip.com
  4 250-PIPELINING
  5 250-SIZE 26624000
  6 250-ETRN
  7 250-STARTTLS
  8 250-AUTH PLAIN LOGIN
  9 250-AUTH=PLAIN LOGIN
 10 250-ENHANCEDSTATUSCODES
 11 250-8BITMIME
 12 250 DSN
 13 AUTH LOGIN
 14         : 334 VXNlcm5hbWU6
 15 。。。。。。。。。。
 16         : 334 UGFzc3dvcmQ6
 17 。。。。。。。。。。
 18         : 535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6//密码验证错误
 19 MAIL FROM: <yingc@nationalchip.com>
 20         : 250 2.1.0 Ok
 21 RCPT TO: <jingzhishen@126.com>
 22         : 553 5.7.1 <yingc@nationalchip.com>: Sender address rejected: not logged in
 23 DATA
 24         : 554 5.5.1 Error: no valid recipients
 25
 26 .
 27         : 221 2.7.0 Error: I can break rules, too. Goodbye.
 28 QUIT
 29         :

 

当不调用recv而总是send报文时,将会发送不成功,具体原因未知:

250 2.1.0 Ok\r\n250 2.1.5 Ok\r\n503 5.5.0 <DATA>: Data command rejected: Improper use of SMTP command pipelining\r\n221 2.7.0 Error: I can break rules, too. Goodbye.\r\n

posted @ 2014-03-20 16:05  静之深  阅读(762)  评论(0编辑  收藏  举报