AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 28043
Accepted
M. Tibbits
M. Tibbits
Asked: 2011-02-26 07:42:35 +0800 CST2011-02-26 07:42:35 +0800 CST 2011-02-26 07:42:35 +0800 CST

如何设置 sendmail、postfix 或 dovecot 以便 perl 可以发送电子邮件?

  • 772

直接问题:我想启用 Perl 来发送电子邮件。我应该安装什么软件包来设置一个简单的电子邮件服务器:不需要传入,只需要传出。如果最好,我可以通过 gmail 的 SMTP 转发吗?

背景:我是一名程序员,有一个用 Perl 编写的夜间构建脚本。我想通过电子邮件将我的夜间构建结果通过电子邮件发送给自己(尤其是在出现错误的情况下)。

我已经简要地阅读了 perl 包Mail::Sendmail,但如果还有其他更合适的,请告诉我!

我尝试了简单的aptget install sendmail,但这似乎不起作用。我收到以下错误:

服务器说:421 4.3.0 collect: Cannot write ./dfp1PFXl7W020719 (bfcommit, uid=0, gid=120): No such file or directory message transmission error (421 4.3.0 collect: Cannot write ./dfp1PFXl7W020719 (bfcommit, uid) =0,gid=120):没有这样的文件或目录)服务器说:421 4.3.0收集:无法写入./dfp1PFXl7W020719(bfcommit,uid = 0,gid = 120):没有这样的文件或目录

我已经用谷歌搜索了这个问题并尝试了一些事情——将我的用户名添加到 /etc/mail/trusted-users 等,但无济于事。

换句话说,如果您能提供设置外发邮件服务器的简单说明,我将不胜感激。我真的不明白具体细节,但据我所知,我需要通过现有的 SMTP 服务器转发邮件——所以如果需要,我可以使用我的 gmail 帐户(无论如何我都想在那里发送日志)。任何建议将不胜感激。

server
  • 5 5 个回答
  • 6373 Views

5 个回答

  • Voted
  1. user8290
    2011-02-26T11:39:44+08:002011-02-26T11:39:44+08:00

    所有这些对于这项工作来说都是太多的工具。ssmtp 做到这一点 - 但只有这个。

    sudo apt-get install ssmtp
    

    (如果已安装,这将删除 postfix 或 sendmail。)

    sudoedit /etc/ssmtp/ssmtp.conf
    

    以及该文件的内容:

    [email protected]
    Mailhub=smtp.gmail.com:465
    RewriteDomain=gmail.com
    AuthUser=your_gmail_username # (before the @gmail.com part)
    AuthPass=your_gmail_password
    FromLineOverride=Yes
    UseTLS=Yes
    
    • 3
  2. belacqua
    2011-02-26T21:07:33+08:002011-02-26T21:07:33+08:00

    我仍然认为 dovecot-postfix 易于安装和配置。我对Is There a Simple Mail-Server I Can Install? 的
    回答中有更多详细信息?

    在那里,EmmyS 能够让它为她的 phpmail 功能工作。

    Dovecot-postfix 可能比您需要的更繁重,但之后只需要几个配置项:

    sudo apt-get install dovecot-postfix
    
    • 3
  3. lcipriani
    2011-02-26T08:43:49+08:002011-02-26T08:43:49+08:00

    好像有很多邮件服务器在运行,你可以尝试关闭 sendmail 吗?

    sudo /etc/init.d/sendmail stop
    

    并检查您的 smtp 端口 (25)

    sudo lsof -i -P -R | grep ':25 '
    

    如果您看到端口 25 有另一个进程正在运行,请尝试停止它。pid 在输出的第三列。

    正确配置后缀:设置为低级 debconf

    sudo dpkg-reconfigure debconf
    

    选择对话框,然后选择低级别警告。然后安装后缀

    sudo apt-get install postfix 
    

    选择带有“Internet 站点”配置文件的标准选项。如果您之前安装过 postfix,您可以通过以下方式重新配置它:

    sudo dpkg-reconfigure postfix
    

    享受!

    • 2
  4. BillThor
    2011-02-26T13:19:16+08:002011-02-26T13:19:16+08:00

    对于 perl 方面,如果您有像 SSMTP 这样的本地中继或任何其他类似程序,则 Perl::SendMail 将起作用。它似乎没有进行身份验证。

    我发现了一篇关于使用 Perl 通过 GMAIL 发送电子邮件的帖子。请注意,该代码将包含您的 Google 凭据。(与 SSMTP 或您使用的任何其他中继一样。)

    我建议您使用您的 ISP 中继服务器来发送邮件。在这种情况下,您可以独立使用 Perl::Sendmail。

    推荐的解决方案:许多需要邮件服务器的程序将 Postfix 作为依赖项安装。如果尚未安装,请安装它或 Exim4。使用 ISP 的中继作为智能主机,将您的服务器配置为“智能主机发送的邮件;不是本地邮件”。为您的用户 ID 配置 /etc/email-addresses。还要配置 /etc/aliases 以将电子邮件转发到您的 gmail 帐户。

    如果您使用 cron 运行,您构建到 stdout 或 stderr 的任何输出都将通过电子邮件发送给您。如果您想从脚本发送邮件,也可以使用 mailx 发送邮件。

    • 2
  5. Best Answer
    user8979
    2011-02-27T04:16:55+08:002011-02-27T04:16:55+08:00

    您还可以查看 Net::SMTP,它允许您发送 SMTP 消息而无需任何外部程序,例如 sendmail。这对于 Ask Ubuntu 来说可能有点离题,因为这是一个纯粹的 Perl 解决方案,但您可能会发现它更可取。Net::SMTP 由 perl-modules 包提供,默认情况下应安装该包。

    • 2

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve