Можно ли получить электронную почту, отправленную с помощью php mail () на сервер? - PullRequest
0 голосов
/ 11 февраля 2011

Я использую функцию PHP mail () для отправки писем из моего приложения. Есть ли какой-нибудь способ увидеть электронные письма, которые были отправлены, если я SSH на сервер? Мне нужно фактическое тело писем, а не просто запись действий. Это, вероятно, длинный выстрел, но любая помощь будет признательна.

РЕДАКТИРОВАТЬ: Я должен был быть более ясным. Это для сообщений, уже отправленных в прошлом. Я определенно могу предпринять шаги для регистрации или иного отчета об отправленных сообщениях в будущем, но есть ли способ восстановить уже отправленные сообщения?

Ответы [ 3 ]

2 голосов
/ 11 февраля 2011

Я обычно добавляю аргумент к своей функции почты, чтобы указать, что я хочу записать запись электронного письма вместе с содержимым в файл HTML. Таким образом, когда я тестирую, я могу просмотреть временную папку и посмотреть, как будет выглядеть электронная почта. Вот некоторый макет кода:

function send_email($to=false,$message=false,$from=false,$test=false) {

    ... do stuff to send email ...

    if ($test == true) {
        $out = 'Mail to: '.$to.'<br />From: '.$from.'<br />Time: '.date('m/d/Y h:i', time()).'<hr />'.$message; 

        // use a random string for a file name
        $fname = random_string(20); 

        .. write the $out var to a file named $fname ...
    }

}
1 голос
/ 11 февраля 2011

Функция mail не добавляет письма в почтовый ящик Sent на сервере, поэтому я бы сказал, что нет: так как вы не можете найти тело письма, отправленного через PHP.

Однако вы можете создать свою собственную почтовую функцию, чтобы регистрировать куда-то содержимое, которое вы отправляете.

Также в php.ini есть 2 строки конфигурации, которые заставляют меня думать, что вы можете добавить еев существующий почтовый ящик с нужной конфигурацией.

;sendmail_path =
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
0 голосов
/ 11 февраля 2011

Если у вас есть доступ к адресу электронной почты, на который он отправляется, вы можете использовать функции PHP IMAP. http://www.php.net/manual/en/book.imap.php

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