我应该做的是从 Ubuntu 发送电子邮件。我发现最简单的方法是使用 Thunderbird 并链接我的真实电子邮件地址 ([电子邮件保护]) 到 Thunderbird 帐户。我可以通过这种方式成功接收电子邮件并下载完整历史记录。但是,我无法发送电子邮件。
我想要做的是直接从 Ubuntu 发送电子邮件并以 user1@localhost 或类似名称显示。
那可能吗?阅读了有关此问题的不同主题后,似乎使用中继地址是唯一的方法。
我也安装了 Postfix,方法与那里写的一样: 如何架设邮件服务器? 当我被要求选择安装类型时,我选择了互联网站点。
我当时的选择是:
- 无需配置;
- 互联网网站;
- 使用智能主机的互联网;
- 司太立体系;
- 仅限本地;
当系统询问邮件名称时,我输入了我拥有的一个网站:some_website.com。我仍然没有弄清楚如何通过 postfix 发送电子邮件,但我认为会再次使用中继服务器。
我正在运行 Ubuntu 11.10 作为虚拟机。
我希望这个问题是有意义的。
答案1
这不太合理,因为你说的是“应该做”,好像这是你的工作一样。你是在虚拟机中设置真正的邮件服务器吗?我认为这些线索意味着你需要虚拟服务器来拥有邮件系统,但虚拟服务器不是全职的“真正的”SMTP 服务器。(否则你早就知道了,我猜很疯狂。)
考虑到这一点,您需要“使用智能主机的互联网”选项。本质上,最大的原因是世界各地配置良好的 SMTP 服务器都使用反垃圾邮件措施;这些措施之一就是拒绝来自已知动态地址池(垃圾邮件发送者喜欢使用)的所有 SMTP 连接。因此,您需要使用另一个 SMTP 服务器来发送邮件。
如果您想继续使用 Postfix,这很容易做到:只需搜索与将 Postfix 设置为智能主机相关的 Ubuntu 文章。但是,如果您对某个系统没有特别的兴趣,那么有一个专门为此设计的软件包:ssmtp
。因此,如果您想试用一下,只需安装 ssmtp 即可。
(警告:以下操作将删除 postfix 或 sendmail。)
sudo apt-get install ssmtp
然后编辑ssmtp配置文件:
sudo -e /etc/ssmtp/ssmtp.conf
我不知道您可用的 SMTP 服务器的详细信息,因此我将提供一个 GMail 示例:
[email protected]
Mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
AuthUser=your_gmail_username # [email protected]
AuthPass=your_gmail_password
FromLineOverride=Yes
UseTLS=Yes
现在您的系统将按照您想要的方式发送邮件。您可以在 GUI 应用程序中将 localhost 用作外发 SMTP 服务器的邮件服务器。但是 CLI 呢?使用软件mail
:
sudo apt-get install heirloom-mailx
现在你也可以从命令行使用邮件,例如:
mail < filename.ascii [email protected] -s "My File"
或者,如果您使用mail
撰写邮件,请键入 ( ),然后在空白行上用一个句号结束邮件消息。更好的 CLI 邮件客户端是或。mail [email protected]
mutt
pine
这是你需要的角度吗?如果是,成功了吗?
答案2
如果您使用的是 Thunderbird,则可以为 SMTP 配置远程服务器。除非您有自己的邮件服务器,否则这通常是您的 ISP 的中继服务器或您的邮件提供商的 SMTP 服务器。我已成功使用 Gmail 作为我的 SMTP 服务器,但它确实需要身份验证。(其他一些主机可能也需要身份验证。)
使用命令测试对服务器的访问telnet mail.example.com 25
。如果正常,您将收到来自服务器的横幅消息。
一旦 Thunderbird 与服务器配合使用,您就可以将 Exim 或 Postfix 配置为同一服务器的卫星服务器。如果您不需要从其他应用程序向系统外发送电子邮件,则可以跳过此步骤。请注意,发送服务器上的源地址可以接受电子邮件。
编辑:检查您是否没有激活 iptables 并阻止传出流量。如果是这样,请在所需端口上启用传出流量。您可以使用类似命令tcptraceroute mail.example.com 25
查看被阻止的位置。 tcptraceroute
在使用之前需要安装。
答案3
我在 vagrant box 上测试了它,运行正常。通过运行命令安装了以下内容
apt-get 安装 php-pear
梨安装邮件
pear 安装 Net_SMTP
pear 安装 Auth_SASL
pear 安装 mail_mime
然后通过运行以下命令安装 postfix
apt-get 安装 postfix
在安装过程中选择--
Internet 站点和 localhost 代替服务器因为我们在 localhost 上尝试这个
之后运行以下命令
sudo vim /etc/ssmtp/ssmtp.conf
更改文件
将其更改为 ssmtp.conf 文件
FromLineOverride=YES
AuthPass=你的密码
最重要的是让你的电子邮件可以被不太安全的应用程序访问
https://www.google.com/settings/security/lesssecureapps
然后你可以使用 php 邮件功能或在终端中输入以下命令从终端本身发送邮件
$ ssmtp[电子邮件保护]
从 :[电子邮件保护]
到 :[电子邮件保护]
主题:主题
您好,这是我的第一封 ssmtp 电子邮件!
按 Ctrl+D,ssmtp 将发送你的电子邮件
您还可以从您的机器上检查 smtp 是否正常工作
ping smtp.gmail.com
--此命令的输出类似于
来自 sc-in-f108.1e100.net (74.125.68.108) 的 64 字节:icmp_seq=1 ttl=63 时间=68.4 毫秒
telnet smtp.gmail.com 587
--输出必须是这样的
正在尝试 74.125.68.108...
已连接到 gmail-smtp-msa.l.google.com。
220 smtp.gmail.com ESMTP l14sm12513264pfb.73 - gsmtp