Board logo

标题: [网络连接] 批处理怎样发送邮件? [打印本页]

作者: chone88    时间: 2010-4-16 22:53     标题: 批处理怎样发送邮件?

这是我在网上找的代码(要用到nc.exe的):
  1. @echo off
  2. set "life=test.conf"
  3. :start
  4. cls
  5. ::::::::::::::::::::::::::::::::::::::::
  6. :name_b
  7. title 批处理发送邮件→1/5
  8. cls
  9. set name=
  10. set /p name=请输入邮箱用户名:
  11. if *%name%==* goto name_b
  12. echo %name%|findstr "^[0-9a-zA-Z_-=]*$" >nul ||(echo 语法错误,任意键返回&pause>nul&goto name_b)
  13. echo 必须保证和上面base64编码前的是同一用户名
  14. :name__b
  15. set name_=
  16. set /p name_=请输入邮箱用户名(非base64编码的):
  17. if *%name_%==* goto name__b
  18. :pass_b
  19. title 批处理发送邮件→2/5
  20. cls
  21. set pass=
  22. set /p pass=请输入邮箱密码:
  23. if *%pass%==* goto pass_b
  24. echo %pass%|findstr "^[0-9a-zA-Z_-=]*$" >nul ||(echo 语法错误,任意键返回&pause>nul&goto pass_b)
  25. :sjr_b
  26. title 批处理发送邮件→3/5
  27. cls
  28. echo 格式为xxx@xxx.xxx 例如:test@test.com
  29. set sjr=
  30. set /p sjr=请输入收件人:
  31. if *%sjr%==* goto sjr_b
  32. echo %sjr%|findstr "^[0-9a-z]*\@[0-9a-z]*\.[a-z]*$" >nul ||(echo 语法错误,任意键返回&pause>nul&goto sjr_b)
  33. :zt_b
  34. title 批处理发送邮件→4/5
  35. cls
  36. set zt=
  37. set /p zt=请输入邮件的主题:
  38. if *%zt%==* goto zt_b
  39. :zw_b
  40. title 批处理发送邮件→5/5
  41. cls
  42. set zw=
  43. set /p zw=请输入邮件的正文:
  44. if *%zw%==* goto zw_b
  45. ::写nc调用的脚本
  46. >%life% echo helo cn-dos
  47. >>%life% echo AUTH LOGIN
  48. >>%life% echo %name%
  49. >>%life% echo %pass%
  50. >>%life% echo mail from: ^<%name_%@163.com^>
  51. >>%life% echo rcpt to: ^<%sjr%^>
  52. >>%life% echo data
  53. >>%life% echo From: %name_%@163.com
  54. >>%life% echo To: %sjr%
  55. >>%life% echo Subject: %zt%
  56. >>%life% echo MIME-Version: 1.0
  57. >>%life% echo Content-Type: text/plain
  58. >>%life% echo.
  59. >>%life% echo %zw%
  60. >>%life% echo .
  61. >>%life% echo quit
  62. pause
  63. cls
  64. echo 正在获取smtp.163.com的ip
  65. for /f "tokens=4 delims= " %%? in ('ping -n 1 smtp.163.com ^|find /i "Ping statistics for"') do (set "ip_=%%?")
  66. set "ip=%ip_::=%"
  67. if *%ip%==* (echo 没有获取到ip,可能网络有问题&pause>nul&goto :eof)
  68. echo %ip%|findstr "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$">nul||(echo 没有获取到ip,可能网络有问题&pause>nul&goto :eof)
  69. echo ip获取完成
  70. echo 正在发送邮件
  71. ::nc连接smtp.163.com 25执行%life%中的命令发邮件
  72. nc -nvv %ip% 25 < %life%
  73. echo 发送完成,任意键开始继续发送
  74. del /f/q %life%>nul
  75. pause>nul&goto sjr_b
  76. goto :eof
复制代码
不过运行到最后一步就停止了 邮件发不出去了?那位大侠帮忙!!!谢谢!!!
作者: GNU    时间: 2010-4-17 00:20

BAT调用VBS发邮件吧,比你这个方便些。
作者: chone88    时间: 2010-4-17 10:02     标题: 用VB怎么调用?

我是个新手,呵呵,希望能指教 谢谢!
作者: caruko    时间: 2010-4-17 11:46

NC啊..
好久没用过了..

334 好像是等待用户验证。。

[ 本帖最后由 caruko 于 2010-4-17 11:51 编辑 ]
作者: chone88    时间: 2010-4-17 12:27

对啊 但是我前面已经输入用户名了(base64格式的),但是到了这一步就不动了,如果手动输入这些东西的话,是可以运行的
作者: GNU    时间: 2010-4-17 18:03

VBS发送带附件的邮件
http://bbs.bathome.net/thread-1994-1-1.html

命令行发送邮件(群发、多附件、匿名)p-mailsend_4.0
http://bbs.bathome.net/thread-5848-1-1.html

批处理调用blat收发邮件
http://bbs.bathome.net/thread-7465-1-1.html




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2