linux脚本实现自动发送和收取邮件的设置方法

1. 命令行模式下的发送邮件
1.1 安装sendemail
2.2 使用sendemail和举例

2. 命令行模式下的收取邮件
2.1 安装getmail4
2.2 配置getmail4和简单举例
2.3 用munpack从邮件中抽取附件

1. 命令行模式下的发送邮件

1.1 安装sendemail
在Ubuntu下可以用新立得软件包管理器搜索安装,或者在终端运行:
sudo apt-get install sendemail
建议在安装前先安装另外两个包:libio-socket-ssl-perl, libnet-ssleay-perl

2.2 使用sendemail和举例

如果你想用你的邮箱christ@gmail.com发送邮件到buddha@qq.com,在终端输入:
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

解释:
-s smtp.gmail.com 指定服务器域名,邮件发送一般通过SMTP协议实现,其域名一般为smtp.***.com,比如qq邮箱的服务器为smtp.qq.com,163邮箱则为smtp.163.com
-f christ@gmail.com指定发送邮箱地址
-t buddha@qq.com 指定目的邮箱地址
-u hello 邮件标题
-m "A hello from Christans to buddhists via gmail" 邮件正文,较长的正文可以先存在文本文件中,不妨命名为mail.txt,然后换用-o message-file=mail.txt
-xu christ 指定邮箱用户名,即邮箱地址@之前的部分
-xp password 指定发送邮箱的密码
-o tls=auto 加密方式在none, tls, ssl中自动选择
如果想在邮件中粘帖附件
-a attachment_file1 attachment_file2 attachment_file3

2. 命令行模式下的收取邮件

通过邮件客户端收取email邮件主要有两种方式:POP3和IMAP,邮件客户端通过POP3下载服务器上的邮件,但是IMAP默认只下载邮件的主题。基于命令行方式自动化的意义,采用POP3更合适。

2.1 安装getmail4

在Ubuntu下可以用新立得软件包管理器搜索安装,或者
sudo apt-get install getmail4

2.2 配置getmail4和简单举例

安装完毕后在终端执行一下命令


代码如下:

cd ~
mkdir .getmail
cd .getmail
mkdir maildir
cd maildir
mkdir new cur tmp

后在 .getmail/下建立一个配置文件,如果这个配置文件是为收取buddha@qq.com这个邮箱配置的,不妨命名为getmailrc.buddha,然后编辑该文件,#后是注释:

代码如下:

# This is a configuration file for buddha@qq.com
[retriever]
type = SimplePOP3Retriever
server = pop.qq.com #如果是gmail则改为pop.gmail.com
username = budda
password = password

[destination]
type = Maildir
path = ~/.getmail/maildir/ #就是刚才在~/.getmail/建立的目录,注意该目录下一定要有new,cur,tmp这三个子目录

[options]
read_all = False #只接受以前没有收取的邮件,如果改成True则收取邮箱中所有邮件
delete = False #下载邮件后不在服务器上删除该邮件,如果改成True则删除

# configuration file ends here
编辑好了之后在终端运行:
getmail --rcfile=getmailrc.buddha

getmail会自动收取邮件,下载的邮件会保存在~/.getmail/maildir/new/下。

2.3 用munpack从邮件中抽取附件

邮件正文和附件是作为一个整体文件被保存的,附件以MIME格式附着在整体文件最后,必须用程序抽取出来。
在Ubuntu下可以用新立得软件包管理器搜索安装mpack,或者 sudo apt-get install mpack
在终端中运行:munpack mail_file
程序会自动识别附件并抽取出来。

(0)

相关推荐

  • linux脚本实现自动发送和收取邮件的设置方法

    1. 命令行模式下的发送邮件 1.1 安装sendemail 2.2 使用sendemail和举例 2. 命令行模式下的收取邮件 2.1 安装getmail4 2.2 配置getmail4和简单举例 2.3 用munpack从邮件中抽取附件 1. 命令行模式下的发送邮件 1.1 安装sendemail 在Ubuntu下可以用新立得软件包管理器搜索安装,或者在终端运行: sudo apt-get install sendemail 建议在安装前先安装另外两个包:libio-socket-ssl-p

  • Python自动发送和收取邮件的方法

    作为课代表,经常要做的两件事是:帮忙发作业和帮忙收作业,而且很多时候是通过邮件来完成的,如果手动一封一封的收取和发送就很浪费时间--人生苦短,我用Python. 直接上代码,不想了解细节原理直接拉到最后,我封装成了两个函数,根据提示,输入参数,直接调用就行.亲测可行 不想看细节这部分可以直接跳过,但是运行的时候要把这一块也粘贴进去. 导入相关库 import smtplib,ssl from email.mime.multipart import MIMEMultipart from email

  • linux操作系统下配置ssh/sftp和权限设置方法

    基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录). 1.开通 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh 到服务器 2.限定用户的活动目录,使用户只能在指定的目录下活动,使用 sftp 的 ChrootDirectory 配置 确定版本 #确保 ssh 的版本高于 4.8p1 否则升级一下 一般都高于这个版本 ssh -V 新建用户和用户组 #添加用户组 sftp groupadd sftp #添加用户

  • 使用python获取邮箱邮件的设置方法

    首先我们要在邮箱的设置中开通那个POP3 然后我们要导入这些包 import poplib from datetime import datetime import jieba import re from email.parser import Parser from email.header import decode_header from email.utils import parseaddr from lxml import etree 然后进行链接 name_list = [] e

  • Zabbix邮件报警设置方法

    说明: Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常. 实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 具体操作: 以下操作在Zabbix监控服务端进行 备注:Zabbix监控服务端 操作系统:CentOS 主机名:zabbix.osyunwei.com 邮件报警有两种情况: 1.Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本

  • linux系统之间通过nfs网络文件系统挂载设置方法

    NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS好处 以下是NFS最显而易见的好处: 1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到. 2.用户不必在每个网络上机器里头都有一个home目录.Home目录 可以被放在NFS服务

  • 详细图示关闭IIS的默认脚本映射,以提高服务器安全性的设置方法

    首先打开IIS管理器,右键点击网站后,选择属性:弹出属性设置窗口如下,选择"主目录"下的"配置"按钮: 在新开的配置窗口中,我们可以看到各种后缀名,这些都是IIS可以执行的文件名称后缀,名称后面的栏目中说明了这种类型的文件,会由那个组件来解析执行它. 我们选种.CEX这个项目,点击删除按钮 在新弹出的对话框中选择是,则该类型的脚本映射被删除,IIS将不会再用asp.dll组件来解析.cdx后缀的文件了. 一般来说,使用动易系统的服务器,如果没有提供其他服务的需要,可

  • Linux 脚本编写基础知识

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须放在文件的第一行):#!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执行:编译 chmod +x filename 这样才能用./filename 来运行 1.1.2 注释 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您在程

  • Linux脚本自动输入密码

    #!/usr/bin/expect set timeout 20 set password "12345678" spawn /usr/bin/sudo su expect "*password for xxx: " send "$password\n" interact 保存内容到一个文件中,如exp-demo.sh chmod 0777 exp-demo.sh 然后在shell下执行: expect exp-demo.sh 以上所述是小编给大

  • 在Python中使用poplib模块收取邮件的教程

    SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python内置一个poplib模块,实现了POP3协议,可以直接用来收邮件. 注意到POP3协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和SMTP协议很像,SMTP发送的也是经过编码后的一大段文本. 要把POP3收取的文本变成可以阅读的邮件,还需要用email模块提供的各种类来解析原始文本

随机推荐