Добавьте пользовательскую переменную в заголовок электронного письма, уже находящегося в почтовом ящике Gmail - PullRequest
4 голосов
/ 24 марта 2010

это может показаться странным, но мне было интересно, можно ли было добавить пользовательские данные заголовка к электронным письмам, уже находящимся во входящих.Например, допустим, я хочу добавить в заголовок письма что-то вроде - myvariable = myvalue и затем иметь возможность запросить его каким-либо образом.Я просматриваю код из почты Илохи, и большинство деталей, таких как тема, полученная информация и т. Д., Находятся в заголовках, и вы можете искать по ним.Так можно ли добавить мою собственную переменную в заголовок электронной почты и запросить его таким же образом?Как это можно сделать с помощью php?

РЕДАКТИРОВАТЬ ====================

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

Я работаю над решением для приложений Google, которое требует ведения ссылок на электронные письма.По сути, приложение таково, что когда приходит электронное письмо - мы создаем заказ из этого электронного письма и хотим сохранить ссылку на это EXACT электронное письмо с помощью своего рода идентификатора, который позволил бы нам идентифицировать это электронное письмо.

Дело в том, что мы не хотим загружать электронные письма в базу данных и поддерживать отдельный магазин, так как мы хотим сохранить всю электронную почту на GMAIL.Нам просто нужно:

Способ, чтобы иметь возможность постоянно «ссылаться» на определенное письмо - UID - это просто порядковый номер и не очень надежный.Мы не смогли найти какое-либо свойство электронных писем, которое могло бы функционировать в качестве уникального идентификатора или первичного ключа, и поэтому мы подумали, можно ли вместо этого сгенерировать ключ с нашей стороны и сохранить его в пользовательской переменной в самом письме.Однако, к сожалению, кажется, что нет способа манипулировать заголовками уже существующей электронной почты.

:( есть какое-то решение этой проблемы, я мог бы использовать любую IDEA!

Ответы [ 3 ]

2 голосов
/ 30 марта 2010

Почему вы не используете заголовок Message-ID? Это должно быть уникальным для каждого почтового сообщения (вы можете увидеть его для любого данного сообщения Gmail, щелкнув по раскрывающемуся меню и выбрав «Показать оригинал»).

Для получения дополнительной информации см. Раздел 3.6.4 формата RFC (RFC2822) сообщений в Интернете (http://www.faqs.org/rfcs/rfc2822.html).

).
2 голосов
/ 24 марта 2010

Да, вы можете добавить свои собственные заголовки при отправке электронного письма ...

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'myvariables: myvalue';

mail($to, $subject, $message, $headers);
?> 

Я сомневаюсь, что вы можете изменить существующие заголовки писем, если они не хранятся в базе данных или чем-то еще, а не просто извлекаются с вашего сервера POP / IMAP.

1 голос
/ 30 марта 2010

Я думаю, что лучшим решением будет либо:

  • Подключитесь к серверу IMAP, получите электронные письма, измените заголовок, поместите его обратно на сервер, по крайней мере, кажется, что это было возможно с Gmail (пример в Java http://forums.sun.com/thread.jspa?threadID=5419712 для PHP смотрите на http://www.php.net/manual/en/ref.imap.php но изменение заголовка не кажется тривиальным)
  • Если это невозможно с помощью gmail или PHP, подключитесь к серверу IMAP, получите электронные письма, скопируйте содержимое, создайте новое электронное письмо с новым заголовком, отправьте его в новый почтовый ящик, подключенный к gmail.

Надеюсь, это поможет.

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