从Linux文件服务器接收电子邮件提醒

目标:在我的文件服务器上获取一个文本文件到我的Gmail收件箱。

文件服务器正在运行Ubuntu服务器8.04我目前SSH进入它,并检查日志,SMART统计硬盘驱动器,等等。 我正在考虑设置一个预定脚本来运行一些命令,并通过电子邮件向我发送输出。

我遇到的唯一问题是真正收到发送的电子邮件。 我没有在Linux下的电子邮件configuration的经验,所有指向sendmail的指南似乎承担代表我自己和我目前的configuration很多东西。 服务器设置为与samba文件共享,而不是作为邮件,web或dns服务器。 我不想运行邮件服务器或从服务器路由任何东西,或者在服务器上(或与服务器)接收任何邮件,除非这些帮助我完成目标。 文件服务器在我们的正常networking上,并可以访问互联网。

我拥有多个网站域名(并有一个托pipe软件包)。 我已经能够设置像thunderbird这样的应用程序发送邮件使用我的网站上的一个帐户,通过填写smtp.mydotcom.com传出服务器使用和更改端口等,以匹配从我的网站的cPanelconfiguration页面。 有没有办法做类似的事情,所以我可以从我的文件服务器发送电子邮件到我的外部电子邮件?

编辑:下面是阅读丹尼斯威廉姆森答案下面的步骤。 我只用了几分钟就起来跑步了!

安装esmtp:

sudo apt-get install esmtp

我在我的网站上创build了一个新的电子邮件帐户(称为“alerts”),并编辑了/ etc / esmtprc,如下所示:

主机名= mail.mydomain.com:26
用户名=警报+ mydomain.com

(这些值由cPanelpipe理页面提供)

然后我创build了一个名为“eheader”的文件,其默认的电子邮件地址为:

要:Me <me@gmail.com>
来自:警报<alerts@mydomain.com>
主题:主题

邮件正文

所以,为了发送邮件,可以使用下面的命令:

cat eheader <file1> <file2> … <fileN> | / usr / bin / esmtp -t

所以很容易改变每天/每周/ etc作业发送哪些文件。

  • sendmail rbl.m4丢失在centos上
  • 防止邮件被标记为垃圾邮件
  • Sendmail - 是否安全,真正必要?
  • 来自Windows的SMTP HELO命令给出500命令无法识别的错误,从Linux返回相同的命令返回Hello
  • 邮件服务器锤击
  • Sendmail连接超时
  • 7 Solutions collect form web for “从Linux文件服务器接收电子邮件提醒”

    我使用esmtp ,这是一个发送只MTA,为此目的。 这是非常简单的设置。 它具有兼容sendmail的命令行选项(一些被忽略)。 它在存储库中。

    这是一个简单的例子:

     echo -e "To: Recipient Name <person@example.com>\n\ From: Me Myself and I <me@gmail.com>\n\ Subject: Here is the example I promised\n\n\ $(<somefile)" | /usr/bin/esmtp -t 

    这将发送名为“somefile”的文件的内容。

    有一个非常简单的configuration文件/etc/esmtprc ,它包含你的上游电子邮件服务提供商的主机名,用户名和密码(我假设你是gmail)。

    有关设置Gmail的说明在这里 。

    查看ssmtp,这是一个sendmailreplace,它只是将电子邮件传递给您configuration的SMTP服务器。 这可能是您获得以编程方式发送电子邮件的最简单方法之一。 网页search“ssmtp”应该有大量的教程和指导如何configuration它。

    此外,大多数编程/脚本语言都提供了SMTP库,所以如果您熟悉Perl或Python,则可以编写一个连接到SMTP服务器以发送邮件的小脚本 – 基本上,您可以编写自己的,更简单的版本ssmtp。

    你需要做的是在configuration为转发到真正的SMTP服务器(在你的networking或在你的ISP),如ssmtp或esmtp的Ubuntu盒子上设置SMTP服务器。 这里是一个轻量级的列表(mutt文档):

    http://wiki.mutt.org/?LightSMTPagents

    更新:

    由于您正在运行Ubuntu,因此您将安装Exim。

    你可以用sudo dpkg-reconfigure exim4-config 。 一旦你阅读了一些文档,设置中继邮件是相当容易的。

    /更新

    以下是从任何电子邮件客户端程序通过Gmail发送邮件的Gmail SMTP服务器设置:

    • 设置Gmail SMTP服务器地址:smtp.gmail.com
    • 将Gmail SMTP用户名configuration为:您的完整Gmail地址(包括@ gmail.com)Google Apps用户可能需要inputusername@your_domain.com
    • 将Gmail SMTP密码configuration为:您的Gmail密码
    • 将Gmail SMTP端口configuration为:465或587
    • configurationGmail SMTP TLS / SSL需要:是

    最后,你将编写一个脚本,调用命令行邮件客户端,如mutt(我不相信邮件或mailx做附件)。 您也可以使用Perl或Python的邮件API。 该脚本创build一个电子邮件并附加您想要的文件。

    最后,你将放入一个crontab项目,以便每天运行脚本(或任何你想要的时间间隔):

     01 * * * * root echo "This command is run at one min past every hour" 17 8 * * * root echo "This command is run daily at 8:17 am" 17 20 * * * root echo "This command is run daily at 8:17 pm" 00 4 * * 0 root echo "This command is run at 4 am every Sunday" * 4 * * Sun root echo "So is this" 42 4 1 * * root echo "This command is run 4:42 am every 1st of the month" 01 * 19 07 * root echo "This command is run hourly on the 19th of July" 

    看到man crontabman cron

    其他更新:

    您可以使用SendEmail从命令行发送电子邮件

    您想发送邮件,但不configuration邮件服务器。 不是一个艰难的秩序,但奇怪。 Postfix可以设置为在几秒钟内发送电子邮件,通常发送给root的电子邮件通常是有用的,例如MD raid组件的通知失败。

    如果您不能或不会在该系统上设置电子邮件,我们还剩下什么?

    如果您的服务器或网站托pipe网站之一确实有ssh,并且可能已经configuration了邮件服务,那么cron如何从服务器上获取日志文件并从邮件系统邮寄呢? 邮件通常通过邮件或mailx命令从unix发送。

     mailx -s "the subject line" targetaddress@example.com < filetomail.txt 

    在此之前,您可以将您想要报告的内容与您需要执行的任何脚本或cp命令相关联。 如果效果更好,可以将cron放在Ubuntu服务器上,然后让ssh命令发送给第二台服务器,以便将数据下载并发送。

    我使用Mail :: Sendmail的perl脚本来从我的服务器(和Net :: Twitter的状态更新)发送电子邮件报告。 当然,这就意味着要处理CPAN,因为你不得不make软件包。

     !#/usr/bin/perl use Mail::Sendmail; %mail = ( To => 'you@there.com', From => 'me@here.com', Message => "This is a very short message" ); sendmail(%mail) or die $Mail::Sendmail::error; print "OK. Log says:\n", $Mail::Sendmail::log; 
     cat /var/log/file.log | mail -s "File logs" mail@domain.com 

    尝试这个。 它可以在大多数Linux发行版上运行。

    试试mutt。 这是一个非常多才多艺的。 允许命令行使用,包括发送附件的能力。 Mutt默认安装在Ubuntu服务器上。 所以你应该拥有它。 典型的命令行如下所示:

     mutt -s 'The subject' -i message.txt myself@mydomain.com & 

    请参阅“man mutt”了解完整的使用选项。 它也有一个交互模式,如果你只是在terminalinput“mutt”。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.