免费注册 查看新帖 |

Chinaunix

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

shell能进行smtp认证并发送邮件?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-01 15:13 |只看该作者 |倒序浏览
如题!
想写一监控程序。
想用shell来通过smtp认证发邮件到相应邮箱。
有人试过吗?
可行?

论坛徽章:
0
2 [报告]
发表于 2005-08-01 16:22 |只看该作者

shell能进行smtp认证并发送邮件??

可以的,
我以前用telnet发过,认证过程如下:

EHLO somesite
AUTH LOGIN
eWxpdUBuYWVzYXNvZnQuY19t  <--经过编码的认证信息(用户名/密码)
cWF8d2N4                                  <--经过编码的认证信息(用户名/密码)

总共四条指令即可.

可以自己发封邮件抓包看看就清楚了。

论坛徽章:
0
3 [报告]
发表于 2005-08-01 17:31 |只看该作者

shell能进行smtp认证并发送邮件??

认证是通过了。但下一步呢?
怎样才能保证使文本内容放到邮件的data内容中去呢??

论坛徽章:
0
4 [报告]
发表于 2005-08-02 13:11 |只看该作者

shell能进行smtp认证并发送邮件??

通过认证后的返回码是: 235 go ahead
当收到这个返回码后
mail from :<youmail@add.com>
rcpt to:<test@test.com>
data
邮件内容
.

邮件内容以点结束
退出是quit

论坛徽章:
1
15-16赛季CBA联赛之深圳
日期:2016-07-07 22:34:24
5 [报告]
发表于 2005-08-02 15:04 |只看该作者

shell能进行smtp认证并发送邮件??

楼上的能说详细一点好吗?具体是怎么操作的?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-08-02 16:21 |只看该作者

shell能进行smtp认证并发送邮件??

有时间看一下简单邮件传输协议的rfc--rfc821。
smtp发邮件其实很简单的,AT说的方法就不错。

其实telnet发邮件完全可以跳过认证的一步。怎么做呢?只要把邮件直接投递到接收方的邮件服务器就行了。

假定要发邮件给user@somewhere.com
首先查出somewhere.com这个域的邮件mx记录,也就是smtp服务器的域名。
假定是mail.somewhere.com
  1. telnet mail.somewhere.com 25
  2. HELO mydomain.com
  3. MAIL FROM:<myaccount@mydomain.com>
  4. RCPT TO:<user@somewhere.com>
  5. DATA
  6. 邮件内容

  7. .
  8. QUIT
复制代码

简单说明:
HELO mydomain.com -- 打个招呼,告诉对方服务器你所在主机的域名。
MAIL FROM:<myaccount@mydomain.com> -- 在尖括号内给出你自己的回信地址。
RCPT TO:<user@somewhere.com> -- 在尖括号内给出收件人邮件地址。注意这里应该是一个本地的邮件地址,即该地址是这个服务器上的账号,这样就不会要求认证。如果不是本地账号,是否要求认证就取决于该邮件服务器的设置   -- 一般都是要认证的,谁让垃圾邮件那么多呢!
DATA命令后是邮件的内容,用一行单独一个句点表示内容完了。
QUIT退出邮件服务器。

注意上面的命令HELO,QUIT等要大写。

论坛徽章:
0
7 [报告]
发表于 2005-08-03 10:08 |只看该作者

shell能进行smtp认证并发送邮件??

但现在的问题是:怎样才能保证使文本内容(即系统信息,日志文件内容等)放到邮件的data内容中去呢??

论坛徽章:
0
8 [报告]
发表于 2005-08-03 21:21 |只看该作者

shell能进行smtp认证并发送邮件??

举个例子:
#! /bin/bash
LETTER_=/tmp/letter.tmp
DES_ADDR=$1
SUBJECT=$2
echo "Subject : $2" > $LETTER
echo "From : `whoami`" >> $LETTER
echo "To : $DES_ADDR" >> $LETTER
echo "this is context" >> $LETTER
echo "" >> $LETTER
sendmail -t < $LETTER
if [ $? -eq 0 ]; then
  echo "send successfully!"
else
  echo "send fail!"
fi

其中sendmail在的位置忘了,自己可以找找.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP