Как повлиять на базу данных PHP/mysql из ответа электронной почты

76
9

Я пытаюсь понять, как это сделать. Должно быть возможно - я видел нечто подобное в нескольких системах (Twitter, facebook и т.д.),

Основная вещь, которую я хочу сделать, - кто-то оставляет комментарий на моем сайте. Комментарий отправляется на мой адрес электронной почты, а также на мою базу данных MySql. Затем я отвечаю прямо на мой адрес электронной почты. Ответ сохраняется в базе данных и автоматически одобряет комментарий пользователя.

Я не могу понять, как разговаривать с моей системой MySql/PHP непосредственно из электронной почты. Кроме того, я не могу понять, как настроить почтовые ящики?

Я предполагаю, что мне нужно настроить правила почтового сервера, чтобы электронные письма, отправленные на xxxx-response@mydomain.com, фактически перенаправлены на php-скрипт, где xxxx является идентификатором исходного комментария?

Спасибо за любой свет, который вы можете потерять...

спросил(а) 2021-01-28T00:14:24+03:00 3 месяца, 1 неделя назад
1
Решение
87

Предполагая, что вы находитесь в системе unix, вы можете настроить учетную запись для получения почты, например "fred", и использовать.forward в домашнем каталоге fred для отправки электронных писем на ваш php-скрипт. например

.вперед:

|"/usr/bin/php /path/to/your/script.php"

который будет вызывать ваш скрипт в любое время, когда электронное письмо поступит в почтовый ящик fred.

ответил(а) 2021-01-28T00:14:24+03:00 3 месяца, 1 неделя назад
62

Вы не можете "разговаривать с mysql из электронной почты". Электронная почта - это пассивный фрагмент текста, который ничего не может предпринять.

Решение основано на следующем:


У вас есть учетная запись электронной почты и опрос, который регистрирует Inbox по php-скрипту периодическим способом, используя wget или подобное в сочетании с записью crontab. Вы также можете создать подход, основанный на событиях, но это сложнее и на самом деле не дает преимуществ. Для всех сообщений, найденных внутри этого почтового ящика, вы проверяете, соответствует ли он любой предыдущей записи в базе данных. Вы можете это сделать, поскольку у вас есть доступ к заголовкам сообщений и телу (текст) по php. Это все, что вам нужно. Обычно соединение между двумя сообщениями выполняется путем оценки заголовка "В ответе", который задается программами электронной почты при нажатии кнопки ответа. Это похоже на ссылку.

Доступ к почтовому ящику учетных записей осуществляется стандартными протоколами доступа к почте, как правило, pop3 или лучше imap4. Когда почтовый сервер не находится в одной системе, вы, очевидно, тоже хотите добавить ssl-шифрование. php imap extension - очень хороший старт для реализации такого клиента, он поддерживает несколько протоколов.

ответил(а) 2021-01-28T00:14:24+03:00 3 месяца, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема