[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[转载教程] 玩转PowerShell之(8)email篇续 - 把gmail当相册

玩转PowerShell之(1)检测硬盘自由空间http://bbs.bathome.net/thread-27008-1-1.html
玩转PowerShell之(2)计算篇http://bbs.bathome.net/thread-27010-1-1.html
玩转PowerShell之(3)命令执行结果http://bbs.bathome.net/thread-27011-1-1.html
玩转PowerShell之(4)email篇http://bbs.bathome.net/thread-27012-1-1.html
玩转PowerShell之(5)偷偷下载http://bbs.bathome.net/thread-27013-1-1.html
玩转PowerShell之(6)数据库篇http://bbs.bathome.net/thread-27014-1-1.html
玩转PowerShell之(7)图形菜单http://bbs.bathome.net/thread-27016-1-1.html
玩转PowerShell之(8)email篇续  - 把gmail当相册http://bbs.bathome.net/thread-27017-1-1.html
玩转PowerShell之(9)DNShttp://bbs.bathome.net/thread-27018-1-1.html

今天察看了一下移动硬盘中的照片,发现照片已经有5G左右的大小了,脑子里突然闪过一个念头,要是硬盘坏掉了,我的照片怎么办?备份啊!再买一个硬

盘?网络上有免费的啊!现在的免费邮件大都是5G以上的,gmail已经6.6G了!为什么不用啊?放在网络上,随时,随地都可以查看自己的照片,又安全、又

方便。

首先选择哪一个免费邮件系统呢?比较了hotmail和gmail(yahoo我不怎么用),我决定还是使用gmail。原因第一是比较符合我的照片总大小,6.6G,最主要

的原因是它的照片预览功能好于hotmail。别人发给我的照片如果在附件里面的话在hotmail上要下载才能看,而gmail里面则直接生成小尺寸的照片嵌在邮件

里面非常方便。另外邮件标签用起来比文件夹更方便。所以选择gmail。

申请一个免费的gmail信箱先,具体是啥就不说了,省得搞来一对垃圾邮件。

下面的问题,怎么把这些照片传上去?
最苯的方法,在gmail里面新建邮件,然后加入附件,然后存储为draft,然后加上标签!gmail里面有一个功能不好,就是每一个附件要单独选择,这样我的

几千张照片要一张张添加的话,还不如杀了我呢!

另一个办法就是把这些照片分批地根据时间、事件、地点等等用邮件一封封发过去,然后加入标签,这样也便于以后的查看。现在gmail支持20MB的附件,

1MB左右的照片可以十几张一组。基本符合我的要求。

下面从哪里,怎样发?从家里不行,我用的adsl,上传速度只有640k,这要搞到什么时候啊?

嘿嘿嘿,从单位吧,哪里带宽大大地!

用什么发呢?最简单的用单位的outlook,可以一次选择多个附件添加入邮件里面,发送就可以了。不过最大的问题是,这样的话,邮件会保存在sent item

里面,想象下我的5G邮件都发走了话,我的邮箱会变得多大?当然可以发完就删掉,不过我们邮件服务器的设置是保存删除邮件一个月,也就是说怎样一个

月内也会把邮件服务器搞大5GB。备份空间又是问题了!用isp的服务器来转发?邮件大小限制10M,gmail的20M浪费了。

于是,我还是用powershell脚本来发。
用脚本最主要的问题是要一封信发多个附件。
下面我来给出我的脚本

  1. # 邮件标题
  2. $title="2005年黄山游"
  3. # 邮件内容,写点关于照片的文字什么的
  4. $body="啊!黄山多美丽,其实没去过!嘻嘻"
  5. # 邮件服务器名或ip
  6. $computer="emailserver"
  7. #发件人
  8. $from="照片上传者<[email]mwpq@abcde.com[/email]>"
  9. #收件地址,就是你申请的gmail地址
  10. $to="photo1234@gmail.com"
  11. #照片存放文件夹,把一次要发的照片存放在一个目录下,发完删掉,然后加入新的照片。注意尺寸不要超过20MB。这里放到c:\tttt下面
  12. $filenames= dir c:\tttt
  13. #下面照抄,不要多问
  14. $smtp = new-Object System.Net.Mail.SmtpClient($computer)
  15. $emailMsg = new-Object System.Net.Mail.MailMessage($from,$to, $title, $body)
  16. foreach($filename in $filenames)
  17. {
  18. $attachment = new-Object System.Net.Mail.Attachment($filename.fullname)
  19. $emailMsg.Attachments.Add($attachment)
  20. }
  21. $smtp.Send($emailMsg)
复制代码


呵呵,完成了。把这段代码根据你的情况改动后存为send.ps1,然后就可以用了。
每次发邮件可以更改$title,$body的内容,然后把照片放到c:\tttt里面。
不过还有几点注意事项,在powershell下面邮件不会立即就发走,要等一会,解决办法是关闭powershell,邮件立即就走了。或者干脆写一个批处理来运行上面的send.ps1脚本。例如把send.ps1存在c:\scripts下面。然后批处理写成 powershell.exe "c:\scripts\send.ps1" 就可以了。

另外根据你的邮件服务器设置,有可能你要在上面改动sending的最大邮件尺寸,以及把这台计算机加入allow relay的列表中,具体怎么做,不属于这篇文章讨论的范围了!

http://bbs.winos.cn/thread-32288-1-1.html

返回列表