OS X: отправка почты на локальный хост - PullRequest
5 голосов
/ 30 декабря 2008

В целях тестирования я хочу отправлять почту на мою учетную запись localhost, а не на мой веб-сервер. Я не уверен, как это сделать с помощью mail.app. Любая помощь будет оценена.

Ответы [ 6 ]

17 голосов
/ 29 октября 2009

@ Tautologistics

OSX имеет встроенный MTA (SMTP-сервер), чтобы включить его, введите:

sudo launchctl start org.postfix.master   

тогда вы можете отправлять почту на localhost, как хотите


пример, показывающий SMTP-сервер, запущенный с моей машины, работающей 10.6.1

>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
6 голосов
/ 30 декабря 2008

Если вы не хотите специально использовать 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'). Интересующие таблицы будут mailboxes и messages. Текст письма хранится в отдельных файлах в соответствующих каталогах почтовых ящиков / папок. Вероятно, так будет лучше, если вы хотите получить доступ к электронной почте, полученной с помощью Mail.app (в режиме реального времени).

Еще одним вариантом будет экспортировать вашу почту из Mail.app, используя формат mbox, и получить к ней доступ, используя методику, описанную dbr. В зависимости от того, нужен ли доступ в режиме реального времени, вы можете написать сценарий, который автоматизирует экспорт.

3 голосов
/ 30 декабря 2008

Я пытаюсь войти на свой (локальный) почтовый сервер, получить доступ к почтовому ящику и выполнить некоторый анализ. Итак, я предполагаю, что почтовый сервер работает локально, но не уверен, как получить к нему доступ

Локальная почта хранится не на сервере 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 модуль , который использовать следующим образом:

>>> msgs = mailbox.mbox("/var/mail/dbr")
>>> for msg in msgs:
...     print "Subject:", msg['subject']
... 
Subject: hi
1 голос
/ 20 октября 2010

Отправка почты с localhost LocalhostMail - это простое и быстрое решение для Mac OS X, которое позволяет отправлять сообщения электронной почты из вашего PHP-приложения (или любого другого, расположенного на локальном хосте) с помощью Mail.app, входящего в Mac OS X. используйте PHP, просто добавьте в базу данных MySQL новые сообщения, и наше приложение отправит их через приложение Mail. LocalhostMail использует вашу почтовую учетную запись в Mail.app для отправки этих сообщений, поэтому вам не нужен отдельный SMTP-сервер для вашего localhost. localhostmail.com

1 голос
/ 30 декабря 2008

Если вы не используете OSX Server, то нет локального сервера SMTP / IMAP / POP3. Вы можете легко его запустить и запустить, используя Post Fix Enabler или, если вы не возражаете против командной строки, используйте MacPorts для установки постфикса:

sudo port install postfix
0 голосов
/ 30 декабря 2008

codelogic, спасибо, я знал об отправке почты из терминала. Я думаю, что мой вопрос не был хорошо продуман. Я пытаюсь войти на свой (локальный) почтовый сервер, получить доступ к почтовому ящику и выполнить некоторый анализ. Итак, я предполагаю, что почтовый сервер работает локально, но не уверен, как получить к нему доступ. Я использую ruby:

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

но получите Timeout::Error: execution expired

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...