За последние 24 часа нас посетили 34084 программиста и 1701 робот. Сейчас ищут 768 программистов ...

Как создавать большое количество "временных" имейлов?

Тема в разделе "PHP для новичков", создана пользователем bocharsky, 26 авг 2014.

  1. bocharsky

    bocharsky Новичок

    С нами с:
    18 апр 2014
    Сообщения:
    77
    Симпатии:
    1
    Добрый день
    Подскажите в каком направлении двигаться и что использовать:

    Скрипт рассылает письма по своим пользователям, на эти письма пользователи шлют ответы. Скрипту надо сопоставлять вопрос и пришедшие ответы (сохранить в БД поборку "вопрос - ответы", вывести на сайте и пр.)

    Решение видится такое: на каждый такой запрос генерировать новое случайное имя для почтового ящика на домене. Что-то вроде de23d@site.com, 3iu67@site.com и так далее. Ответы, пришедшие на один адрес сопоставляются с вопросом, под который ящик создан и складываются в одну кучку, ответы на другое - в другое и пр.

    Подскажите подход к решению задачи, с помощью какого инструментария можно такое устроить?

    Рабочие параметры (если это важно для выбора рекомендаций): надо делать 2 - 3 таких рассылки в день, количество адресатов может достичь нескольких десятков тысяч человек.
    Созданные почтовые ящики - "одноразовые", больше использоваться не будут.

    Спасибо!
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Не знаю тонкостей но может как то в письмо или еще куда то добавлять своеобразный токен уникальный для каждого письма?
    Токен хранится в базе пришел ответ сравнил с токеном в письме если все ок сохраняем. В базе будет идентификатор который указывает к какой тематике относится ответ и на его основе выводить результат на сайте.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Все правильно автар задумал, для каждого пользователя свой почтовый адрес, и адрес этот хранить в БД, с отправкой тут вроде как проблем нет, а вот как получать письма, мне вот это интересно.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Через тему это делается обычно
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Обычно в теме письма токен. Обратите внимание на письма из любых магазинов например.
     
  7. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    а если ответчик подредактирует тему?
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а если он пошлёт на другой имеил другое письмо про другой случай? печаль будет.
     
  9. bocharsky

    bocharsky Новичок

    С нами с:
    18 апр 2014
    Сообщения:
    77
    Симпатии:
    1
    Коллеги, огромное спасибо!
    Очень заинтересовал подход с "тегами":

    Подскажите на этот счет:
    1. Нужно ли что-то (и где?) специально настраивать, чтобы получать письма, отправленные на адрес-тег?
    Допустим есть имейл query@site.com. И под каждый запрос я создаю для почтового ящика случайный тег вида query+sd24d@site.com и пр. Если пользователь ответит на это письмо, оно автоматически придет в почтовый ящик query@site.com?
    Если нет, то где и что надо надо настраивать?

    2. Как извлекать контент писем, пришедших на почтовый ящик?

    3. Помимо извлечения контента, требуется пересылать приходящие на "временные адреса" ответы на адреса авторов вопросов.
    Я понимаю, что если в п.2 я смог извлечь контент из пришедших писем-ответов, то можно сформировать новое письмо и отправить его на нужный адрес с помощью mail()

    Но допустим, пункт 2 не реализован.
    Тогда можно просто форварднуть ответ, пришедший на query+sd24d@site.com, на адрес задавшего вопрос.
    Как можно реализовать такую пересылку, учитывая, что адреса-"прокладки" динамически генерируются скриптом?

    PS На всякий случай, кейс в целом:
    Есть Иванов, который с помощью скрипта хочет задать зарегистрированным пользователям скрипта вопрос (пользователи заинтересованы в получении таких вопросов и хотят отвечать на них). У Иванова есть имейл ivanov@company.com, но "светить" его Иванов не хочет, плюс хочет чтобы поток ответов был закрыт после "дедлайна". Иванов заполняет форму на сайте, где указывает свой имейл, вопрос и дед-лайн. Скрипт генерит для ivanov@company.com временный имейл вида query+sd24d@site.com (а также генерит псевдонимы имейлов для других авторов вопросов - Петрова и Сидорова) и раз в день высылает пользователям письмо вида:

    Иванов
    "Как сделать ХХХ"
    email: query+sd24d@site.com

    Петров
    "Поделитесь опытом YYY"
    email: query+45аог@site.com

    Сидоров
    "Ищу ZZZZ"
    email: query+6fhh7@site.com

    Пользователи шлют свои ответы на имейлы, указанные в вопросе. Скрипт
    - форвардит ответы на соответствующий реальный имейл автора,
    -"уничтожает" имейлы после дедлайна (перестает пересылать письма)
    - извлекает контент и публикует на сайте

    Предполагаю, что значительная часть этой задачи лежит вне "чистого PHP", я пытался читать про "почтовые сервера" (предполагая, что с их помощью можно настроить подобные процессы), но пока в голове каша.
    Буду признателен целеуказаниям.

    Еще раз спасибо!
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    bocharsky, нигде ничего не придется настраивать. ты бы попробовал на практике, прежде чем вопросами закидывать! :)
    вникать в твои кейсы мне в лом, если честно. формат адреса соответствует стандартам, а как это можно использовать — сам думай. ты же программист, в конце концов ))) у тебя есть голова.