OS X:向localhost发送邮件

时间:2008-12-30 00:52:40

标签: macos email

出于测试目的,我希望将邮件发送到我的localhost用户帐户而不是我的网络服务器。我不确定如何使用mail.app执行此操作。任何帮助将不胜感激。

6 个答案:

答案 0 :(得分:17)

@Tautologistics

OSX确实有内置的MTA(SMTP服务器),打开它可以输入:

sudo launchctl start org.postfix.master   

然后你可以像你想要的那样发送邮件给localhost


示例显示从运行10.6.1的计算机运行的SMTP服务器

>telnet 127.0.0.1 25
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host

>sudo launchctl start org.postfix.master

>telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 machinename.example.com ESMTP Postfix

答案 1 :(得分:6)

如果您不想特别使用Mail.app,则可以使用mail命令发送邮件。打开终端并:

mail -s "Testing" `whoami`@`hostname`
<type something>
Ctrl-D to finish and send

这些是反引号,而不是单引号。 whoami返回当前用户的用户名,hostname返回本地计算机的主机名。它也可以是明确的:

mail -s "Testing" john@mymac.local

编辑:请阅读您的澄清。 Mail.app将其数据存储在〜/ Mail中,主要存储在SQLite数据库('Envenlope Index'文件)中。感兴趣的表格为mailboxesmessages。电子邮件的文本存储在各个邮箱/文件夹目录中的各个文件中。如果您想要访问Mail.app(实时)提取的电子邮件,这可能是要走的路。

另一种选择是使用mbox格式从Mail.app导出邮件,并使用dbr描述的技术访问它。根据是否需要实时访问,您可以编写一些自动导出的脚本。

答案 2 :(得分:3)

  

我想登录我的(本地)邮件服务器,访问邮箱,并进行一些解析。所以,我假设有一个本地运行的邮件服务器,但不知道如何访问它

本地邮件不存储在POP3 / IMAP服务器中,而是使用UNIX'y mbox。存储在/var/mail/中的文件(文件名是用户登录名)

例如......

$ mail dbr
Subject: hi
test
^d # ctrl+d (EOF)
$ cat /var/mail/dbr 
From dbr@parabola.local  Tue Dec 30 13:43:57 2008
Return-Path: <dbr@parabola.local>
X-Original-To: dbr
Delivered-To: dbr@parabola.local
Received: by parabola.local (Postfix, from userid 501)
        id 4FEA1158E36; Tue, 30 Dec 2008 13:43:57 +1030 (CST)
To: dbr@parabola.local
Subject: hi
Message-Id: <20081230031357.4FEA1158E36@parabola.local>
Date: Tue, 30 Dec 2008 13:43:57 +1030 (CST)
From: dbr@parabola.local (dbr)

test

不确定Ruby(我有一个搜索,但找不到任何东西,虽然毫无疑问是一个模块),但我知道Python有maildir.mbox module,它将以下列方式使用:

>>> msgs = mailbox.mbox("/var/mail/dbr")
>>> for msg in msgs:
...     print "Subject:", msg['subject']
... 
Subject: hi

答案 3 :(得分:1)

除非您运行的是OSX Server,否则本地没有运行SMTP / IMAP / POP3服务器。您可以使用Post Fix Enabler轻松启动并运行,如果您不介意命令行,请使用MacPorts安装后缀:

sudo port install postfix

答案 4 :(得分:1)

从localhost发送邮件LocalhostMail是一个简单而快速的Mac OS X解决方案,它允许您通过Mac OS X附带的Mail.app从PHP应用程序(或任何其他位于localhost上)发送电子邮件。如果您使用PHP,只需添加MySQL数据库新消息,我们的应用程序将通过Mail应用程序发送它们。 LocalhostMail使用Mail.app中的邮件帐户发送这些邮件,因此您不需要为本地主机安装单独的SMTP服务器。localhostmail.com

答案 5 :(得分:0)

codelogic, 谢谢,我确实知道从终端发送邮件。我认为我的问题没有经过深思熟虑。我想登录我的(本地)邮件服务器,访问邮箱,并进行一些解析。所以,我假设有一个本地运行的邮件服务器,但不知道如何访问它。 我正在使用红宝石:

pop = Net::POP3.new 'macbook.local'
pop.start 'me', 'mypass'

但获得Timeout::Error: execution expired