- Ubuntu 14.04 安装在虚拟机上,不是我的电脑。我使用我的电脑(Windows 7 和 Putty 0.63)进入虚拟机。
- 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
- 这台机器在我们的私人网络上,没有正式注册的域名。它有自己的 IP,但我认为它是一个内部 IP。这台机器不能从我们网络外部访问,我只用它给我们公司的人发送电子邮件。我让 Perl 向我们的 SMTP 提供商发送电子邮件,这很正常。
- 我们支付了外部 SMTP 服务的费用,所以这部分已经完成了。我使用的唯一 SMTP 身份验证是用户名和密码。不需要 SSL。
- 我无意在这台机器上接收来自外界的任何电子邮件。
- 目前,我的电子邮件被 SMTP 提供商阻止,可能是因为我没有 FQDN。我收到的错误是“连接超时”。
- 我甚至无法从我的 PC 远程登录到 SMTP 服务器,还收到“超时”错误。我使用的是 Putty 0.63。但我仍然可以通过 Ubuntu 上的 Perl 程序发送电子邮件。
- IT 无法帮助我,所以我只能靠自己了。我是 Ubuntu 系统管理员新手。
我需要一种方法,通过命令行发送带有附件的电子邮件(用于自动 cron 进程),而无需设置注册域、MX 或 A 记录。我有什么选择?Postfix 不会这样做,因为它需要设置一堆网络设置以及(DNS?)记录。
由于 Perl 模块使用 SMTP 协议直接登录到 SMTP 服务器,我怀疑我需要一个执行相同操作的 Ubuntu 包,而无需将任务传递给另一个 MTA。
我尝试了 SSMTP
- 使用 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
- 在 /etc/ssmtp/ssmtp.conf 中,我甚至将设置“Rewritedomain”更改为我们实际的公司域名。
- 更改 ssmtp.conf 文件后,如何重新启动 SSMTP 守护进程?也许这就是问题的一部分。
我尝试通过 telnet 进入 SMTP 服务器
- 我尝试通过 telnet 进入 smtpout.payserv.net 端口 25,结果只收到“220 ********************”,然后 Putty 0.63 退出。
我的 SMTP 公司是否可能封锁了我的 IP?我应该给他们打电话吗?
让我们回顾一下
- 我执行了“netstat -an|grep smtp”,但没有看到 smtp 服务正在运行。我该如何启动它?
- 我需要将 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 的情况下发送带有附件的电子邮件。到目前为止我找不到解决方案。