2010-05-27 4 views
2

Я ищу список встроенных функций PHP, которые программист мог использовать для отправки электронной почты.Что все пути программиста Могли бы использовать PHP для отправки электронной почты?

Очевидным ответом здесь является mail(), но я также ищу список функций, которые кто-то может использовать, чтобы вручную открыть соединение с MTA или вызвать процесс на локальном компьютере, который, в свою очередь, может отправить электронное письмо, используя Sendmail, Postfix и т.д.

контекст здесь я хочу отсканировать большой, неизвестный кодовую для кода, который рассылка по электронной почте (потому что мы уже находится вызов mail(), и это не делает его)

+2

Я думаю, ваш лучший выбор - это grep для содержания или темы электронной почты. Они могут использовать произвольный внешний системный вызов с использованием backticks, с которыми вам трудно найти. – zombat

+0

Электронная почта динамически генерируется из базы данных. –

ответ

2

И так же как кавычка, а также проверить на POPEN() и функции исполнения системы ... http://us2.php.net/manual/en/ref.exec.php

exec 
passthru 
proc_close 
proc_get_status 
proc_open 
proc_terminate 
shell_exec 
system 
` 

IMAP может быть другой, в зависимости от того, как PHP был настроен ... http://www.php.net/manual/en/ref.imap.php

fsockopen is most likely the other one 
2

fsockopen скорее всего, другой.

1

IMAP может быть другой, в зависимости от того, как PHP был настроен ... http://www.php.net/manual/en/ref.imap.php

+0

Добро пожаловать на сайт bob, лучше объединить все ваши ответы по одному вопросу, чем отправлять несколько ответов. –

+0

Спасибо. Я знаю, но будучи новым и незарегистрированным, у меня нет разрешения включать более одного URL-адреса или комментариев по любому другому ответу. –

+0

@Ignacio Устранение функции imap_mail(), фактически, эти функции открываются и работают над потоком IMAP для любой поддерживающей локальной или удаленной службы, из моего понимания. Как и обычное администрирование почтового ящика, это семейство функций ведет себя так, как будто оно просто вставляет сообщение в любой почтовый ящик. Оттуда он мог бы быть отправлен почтовым сервером, если в какой-то очереди. –

0

Просто глядя на mail()docs, это выглядит как Pear::Mail бы хорошим кандидатом, или по крайней мере лучше.

+0

Но Pear :: Mail в конечном итоге понадобится использовать встроенный механизм PHP для реализации его функций. Там, вероятно, сотни сторонних почтовых библиотек. –

+0

@ Alan Storm Конечно, но сканирование кодовой базы не обязательно будет использовать PEAR для функции 'mail', если она включена из другого места в системе. – ceejayoz

+0

@ceejayoz Hmph. В этом случае он выполняет следующие действия: http://svn.php.net/viewvc/pear/packages/Mail/trunk/Mail.php?view=markup @Alan StormHave вы смогли узнать, что представляет собой реальная проблема с 'mail()' есть? Я подозреваю, что многие из сотен сторонних почтовых библиотек открывают сокеты для MTA таким же образом, как и «mail()». –

1

подлый способ будет выключить местную почтовую службу и проверить журналы ошибок PHP для Sendmail ошибок вы получите :)

Это должно остановить php от возможности отправлять электронные письма локально

+0

Не, если программа открывает прямые подключения с почтовым сервером на другом компьютере. –

+0

Вот почему я сказал локально :) В любом случае в заголовке электронной почты всегда есть IP, поэтому вы можете видеть, на каком сервере было отправлено электронное письмо.Поэтому просто отключите службу электронной почты на этом сервере и найдите ошибки. Или просто заблокируйте порт электронной почты с хоста php с помощью iptables. –