Ubuntu 14.04:如何在没有注册域名或 MX 或 A 记录的情况下发送电子邮件?

Ubuntu 14.04:如何在没有注册域名或 MX 或 A 记录的情况下发送电子邮件?
  1. Ubuntu 14.04 安装在虚拟机上,不是我的电脑。我使用我的电脑(Windows 7 和 Putty 0.63)进入虚拟机。
  2. Uname=Linux ubuntucomp 3.13.0-24-generic #46-Ubuntu SMP 星期四 4 月 10 日 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
  3. 这台机器在我们的私人网络上,没有正式注册的域名。它有自己的 IP,但我认为它是一个内部 IP。这台机器不能从我们网络外部访问,我只用它给我们公司的人发送电子邮件。我让 Perl 向我们的 SMTP 提供商发送电子邮件,这很正常。
  4. 我们支付了外部 SMTP 服务的费用,所以这部分已经完成了。我使用的唯一 SMTP 身份验证是用户名和密码。不需要 SSL。
  5. 我无意在这台机器上接收来自外界的任何电子邮件。
  6. 目前,我的电子邮件被 SMTP 提供商阻止,可能是因为我没有 FQDN。我收到的错误是“连接超时”。
  7. 我甚至无法从我的 PC 远程登录到 SMTP 服务器,还收到“超时”错误。我使用的是 Putty 0.63。但我仍然可以通过 Ubuntu 上的 Perl 程序发送电子邮件。
  8. IT 无法帮助我,所以我只能靠自己了。我是 Ubuntu 系统管理员新手。

我需要一种方法,通过命令行发送带有附件的电子邮件(用于自动 cron 进程),而无需设置注册域、MX 或 A 记录。我有什么选择?Postfix 不会这样做,因为它需要设置一堆网络设置以及(DNS?)记录。

由于 Perl 模块使用 SMTP 协议直接登录到 SMTP 服务器,我怀疑我需要一个执行相同操作的 Ubuntu 包,而无需将任务传递给另一个 MTA。

我尝试了 SSMTP

  1. 使用 ssmtp 时,我从 /var/log/mail.log 收到此错误:10 月 22 日 10:18:19 ubuntucomp sSMTP[16075]: 无法连接到“smtpout.payserv.net”端口 587。进程失败,错误代码为 1。10 月 22 日 10:18:19 ubuntucomp sSMTP[16075]: 无法打开 smtpout.payserv.net:587
  2. 在 /etc/ssmtp/ssmtp.conf 中,我甚至将设置“Rewritedomain”更改为我们实际的公司域名。
  3. 更改 ssmtp.conf 文件后,如何重新启动 SSMTP 守护进程?也许这就是问题的一部分。

我尝试通过 telnet 进入 SMTP 服务器

  1. 我尝试通过 telnet 进入 smtpout.payserv.net 端口 25,结果只收到“220 ********************”,然后 Putty 0.63 退出。

我的 SMTP 公司是否可能封锁了我的 IP?我应该给他们打电话吗?

让我们回顾一下

  1. 我执行了“netstat -an|grep smtp”,但没有看到 smtp 服务正在运行。我该如何启动它?
  2. 我需要将 smtp 服务器添加到 /etc/hosts 吗?

谢谢。

答案1

您可以从 Linux 命令行使用邮件选项。默认格式如下。

mail -s "Hello ASKUBUNTU" [email protected]

要在运行命令时将内容添加到邮件正文,您可以使用以下选项。如果您想自己添加文本:

echo "This will go into the body of the mail." | mail -s "Hello world" [email protected]

如果你想让邮件从文件中读取内容:

mail -s "Hello world" [email protected] < /home/calvin/application.log

mail 命令中的其他一些有用的选项是:

-s主题(邮件主题)

-c电子邮件地址(标记为抄送给此“电子邮件地址”,或抄送)

-b电子邮件地址(将密件抄送给该“电子邮件地址”,即 BCC)您可以使用以下选项:

echo "Welcome to the world of Calvin n Hobbes" | mail -s "Hello world" [email protected] -c [email protected] -b [email protected]

要添加附件,您可以使用-a邮件中的选项

mail -a /path/to/file.to.attach -s "Hello ASKUBUNTU" [email protected] 

希望这可以帮助。

答案2

明白了!在 /etc/ssmtp/ssmtp.conf 中,“hostname=” 行应该是我的计算机名称“ubuntucomp.net”。这就是全部错误。

但是它不发送附件。似乎其他人也遇到了同样的问题:如何在不安装 MTA 的情况下发送带有附件的电子邮件。到目前为止我找不到解决方案。

相关内容