邮件服务器-邮件系统-邮件技术论坛(BBS)

标题: 在线求不用SMTP服务器,如何发送邮件 [打印本页]

作者: paulmeng    时间: 2006-12-1 11:20
标题: 在线求不用SMTP服务器,如何发送邮件
各位大虾,我的程序要实现发邮件的功能,只要有收件人的地址,我就可以发送一封邮件给收件人,我以前用的SMTP协议,需要有发件人的用户名和密码,然后就用socket把smtp命令发出去.但是这样的设计是不发符合需求的.我想请教各位,如何自己做一个类似SMTP服务器的发邮件功能,最后再次感谢各位提供各种参考.就是在自己的机器上发送邮件,不用任何邮件代理服务器.
作者: Rootong    时间: 2006-12-1 16:42
只要你能写一个smtp daemon在你的程序里那就没问题了,不然你就需要一个做open relay的设备
作者: paulmeng    时间: 2006-12-1 17:31
标题: 回复 #2 Rootong 的帖子
Rootong,能否给一点提示,smtp daemon , open relay 功能是什么,实现的思路是什么,可否告诉我,我确实需要这方面的知识, .再次谢谢您
作者: Rootong    时间: 2006-12-3 11:58
好像翻译成中文的意思应该是SMTP后台程序,open relay应该是中继的意思
不好意思,呵呵,接触EMAIL就没看过中文的资料,希望对你有帮助
作者: paulmeng    时间: 2006-12-4 10:33
Rootong,能否提供一些资料目录,英文的目录也可以,上周我去图书市场,没有找到相关的书籍,提供一些相关的书籍名称或者资料名称,我自己去查,再次感谢您
作者: Rootong    时间: 2006-12-4 15:10
intenet mail, o'reilly的书
专门针对programmer的,应该对你有帮助
作者: abel    时间: 2006-12-4 16:02
我的範例,用 shell script 發附件 (bash )

  1. [root@log study]# cat mail_attachment.sh
  2. #!/bin/sh

  3. # program Subject To Attachment
  4. hostname=`hostname`
  5. From=$LOGNAME@$hostname
  6. echo $From
  7. SUBJ=$1
  8. TO=$2
  9. FILE=$3
  10. ts=`date +%s`
  11. base64_data=`perl -e ' use MIME::Base64 qw(encode_base64); local($/) = undef; print encode_base64(<STDIN>);' < $FILE`

  12. domain_part=`echo $TO | cut -f 2 -d'@'`
  13. mxhost=`host -t mx $domain_part | cut -f 7 -d ' '`

  14. [ -z "$mxhost" ] && host=$domain_part
  15. [ -n "$mxhost" ] && host=$mxhost

  16. echo "$SUBJ $TO $FILE $host"

  17. echo $host
  18. cat << EOF | nc $host 25
  19. EHLO $hostname
  20. $(sleep 1)MAIL FROM: <$From>
  21. $(sleep 1)RCPT TO: <$TO>
  22. $(sleep 1)DATA
  23. MIME-Version: 1.0
  24. Content-Type: multipart/mixed;
  25.         boundary="----=_NextPart_000_0590_01C5EEB7.B745FBD0"
  26. Subject=$SUBJ

  27. This is a multi-part message in MIME format.

  28. ------=_NextPart_000_0590_01C5EEB7.B745FBD0
  29. Content-Type: text/plain;
  30.         charset="big5"
  31. Content-Transfer-Encoding: 7bit

  32. see the detail in attachment
  33. ------=_NextPart_000_0590_01C5EEB7.B745FBD0
  34. Content-Type: application/octet-stream; name="$FILE"
  35.         name="$FILE"
  36. Content-Transfer-Encoding: base64
  37. Content-Disposition: attachment;
  38.         filename="$FILE"

  39. $base64_data

  40. ------=_NextPart_000_0590_01C5EEB7.B745FBD0--
  41. .
  42. EOF



复制代码

作者: Rootong    时间: 2006-12-19 13:07
看得懂一点点这个部分,不是太熟悉PERL,你对SMTP协议是否很了解的了?楼上的同胞




欢迎光临 邮件服务器-邮件系统-邮件技术论坛(BBS) (http://bbs.5dmail.cn/) Powered by Discuz! X3.2