用linux脚本自动发送和收取邮件
1.命令行模式下的发送邮件
1.1 安装sendemail 在Ubuntu下可以用新立得软件包管理器搜索安装,或者在终端运行:
1 | sudo apt-get install sendemail |
建议在安装前先安装另外两个包:libio-socket-ssl-perl, libnet-ssleay-perl.
1.2 使用sendemail和举例 如果你想用你的邮箱christ@gmail.com发送邮件到buddha@qq.com,在终端输入:
1 | sendemail -s smtp.gmail.com -f christ@gmail.com -t buddha@qq.com -u hello -m "A hello from Christans to buddhists via gmail" -xu christ -xp password -o tls=auto |
解释:
1 | -s smtp.gmail.com 指定服务器域名,邮件发送一般通过SMTP协议实现,其域名一般为smtp.***.com,比如qq邮箱的服务器为smtp.qq.com,163邮箱则为smtp.163.com |
如果想在邮件中粘帖附件:
1 | -a attachment_file1 attachment_file2 attachment_file3 |
2.命令行模式下的收取邮件 通过邮件客户端收取email邮件主要有两种方式:POP3和IMAP,邮件客户端通过POP3下载服务器上的邮件,但是IMAP默认只下载邮件的主题.基于命令行方式自动化的意义,采用POP3更合适.
2.1 安装getmail4 在Ubuntu下可以用新立得软件包管理器搜索安装,或者:
1 | sudo apt-get install getmail4 |
2.2 配置getmail4和简单举例 安装完毕后在终端执行一下命令:
1 | cd ~ |
后在 .getmail/下建立一个配置文件,如果这个配置文件是为收取buddha@qq.com这个邮箱配置的,不妨命名为getmailrc.buddha,然后编辑该文件,#后是注释:
1 | # This is a configuration file for buddha@qq.com |
编辑好了之后在终端运行:
1 | getmail --rcfile=getmailrc.buddha |
getmail会自动收取邮件,下载的邮件会保存在 ~/.getmail/maildir/new/下.
2.3 用munpack从邮件中抽取附件 邮件正文和附件是作为一个整体文件被保存的,附件以MIME格式附着在整体文件最后,必须用程序抽取出来. 在Ubuntu下可以用新立得软件包管理器搜索安装mpack,或者:
1 | sudo apt-get install mpack |
在终端中运行:
1 | munpack mail_file |
程序会自动识别附件并抽取出来.