Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Мне нужно из скрипта наладить работу с электронной почтой. Используется GMail, поэтому обычный mail не подойдет, нужна полноценная работа с TLS. Насколько я понял, для этого обычно используют PHPMailer. Это оптимальный вариант или есть способы лучше? Ну и еще хотел бы уточнить, как это обычно делается. Подозреваю, что делать прием или отправку почты прямо из скрипта страницы будет неправильно. Видимо в скрипте страницы нужно помещать сообщение в очередь, а очередь будет обрабатывать другой скрипт, запускаемый планировщиком. Как обычно такое делают? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2015, 10:33 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B.Мне нужно из скрипта наладить работу с электронной почтой.Что именно хотите реализовать? Alibek B.обычный mail не подойдет, нужна полноценная работа с TLS.Функция mail() умеет только отправлять письма. Точнее, передавать письма для отправки локальному MTA. А дальше уже забота по доставке ложится на локального почтового агента. Конечно, если сервер никсовый. Alibek B.Подозреваю, что делать прием или отправку почты прямо из скрипта страницы будет неправильно.По приёму, скорее всего, так и есть. Длительный это процесс. Отправку же десятка писем через mail() вполне можно делать из скрипта страницы. Alibek B.Видимо в скрипте страницы нужно помещать сообщение в очередь, а очередь будет обрабатывать другой скрипт, запускаемый планировщиком.Для больших объёмов отправки так и делают обычно. Следует заметить, что хостеры нередко ограничивают количество отправляемых писем в единицу времени, например, не более 120 писем в час. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2015, 10:54 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Нужно проверять входящую почту и при получении определенного содержания от определенного отправителя обработать полученные данные (принять файл, обработать, загрузить в БД). Почта проверяется периодически или по запросу. В некоторых случаях (по результатам обработки или по запросу) нужно отправить результаты обработки на определенный адрес. Размер ответа небольшой (пара килобайт). Хостинг мой собственный, ОС Debian Linux. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2015, 12:45 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B., попробуйте посмотреть в сторону IMAP и Mailparse http://php.net/manual/ru/refs.remote.mail.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2015, 13:29 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Спасибо, почитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2015, 14:27 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Подскажите по imap-функциям. А то я что-то запутался. Подключаюсь (imap_open), получаю список сообщений (imap_fetch_overview). Теперь мне нужно получить различную информацию по каждому элементу этого списка. Для этого я с помощью imap_fetchheader получаю содержимое заголовков, разбиваю их по заголовкам, применяю к значениям imap_mime_header_decode и получаю заголовок письма в виде читаемого текста. Но это именно текст, из которого нужно извлечь данные в соответствии с несколькими RFC, а я бы не хотел это все изучать. Еще есть функция imap_headerinfo, которая получает информацию из письма в структурированном виде. Но у нее не ладится с кодировками, во всяком случае кириллица не читается. А применять imap_mime_header_decode к данным в imap_headerinfo уже бесполезно, кодировка уже изменена. Можно ли получить информацию из письма в структурированном виде и преобразованной в читаемый вид? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 21:50 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Поясню. Есть письмо, в кодировке UTF-8. imap_fetchheader возвращает следующий текст: Код: plaintext А вот imap_headerinfo осуществляет преобразования, вот ее результат: Код: plaintext И как с него получить нормальный текст я тоже пока не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 22:07 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B.нужно извлечь данные в соответствии с несколькими RFC, а я бы не хотел это все изучатьА придётся. Хотя бы, по минимуму. Alibek B. Код: plaintext Alibek B.как с него получить нормальный текст Здесь: UTF-8 - кодировка текста B - означает, что было использовано кодирование в base64 0KLQtdGB0YIx - собственно, текст в закодированном виде Делите строку по вопросикам, декодируете base64_decode нужный фрагмент и получаете текст в указанной кодировке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 22:42 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
С первой строкой у меня без проблем справляется imap_mime_header_decode. У меня проблема с тем, как получить значение полей после imap_headerinfo. После нее получается "?KOI8-R?B?9MXT1DE=?=" и из этой строки извлечь данные не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 23:01 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Вообщем слепил такого кадавра: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но хотелось бы знать, у меня не работает функция imap_headerinfo, которая по идее должна делать то же самое. Вместо этого она невосстановимо портит кодировку, превращая "=?UTF-8?B?0KLQtdGB0YIx?=" в "?KOI8-R?B?9MXT1DE=?=". Или это баг функции, или я неправильно ей пользуюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 23:40 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B.она невосстановимо портит кодировку, превращая "=?UTF-8?B?0KLQtdGB0YIx?=" в "?KOI8-R?B?9MXT1DE=?=".Где и что именно испорчено? Код: php 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 07:26 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Спасибо, не сообразил к imap_headerinfo еще одно преобразование применить. Но почему KOI8-R? В исходном письме его вообще нигде нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 09:15 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Не подскажите с еще одним моментом? Не могу понять, как извлечь из письма список прикрепленных файлов. Нужно обработать письма, получить текст письма и прикрепленные файлы. Использую такой код: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Функция parseMessage извлекает заголовки из письма, тело письма и получает список прикрепленных файлов. Этот код дает такой вывод: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. С письмами 1 и 2 все выглядит нормально, в них нет текстового тела письма, они содержат только прикрепленный файл. К письму 3 прикреплены 3 файла. В нем 4 части, в первой тело письма, со второй по четвертую идут файлы. Но почему у них type=0? И с письмом 4 мне тоже непонятно, почему у него такая структура. В письме HTML-текст с прикрепленной картинкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 18:10 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Сейчас я использую такой алгоритм для извлечения данных: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Пока что на моих письмах он сработал нормально. Но может я еще какой нюанс не учел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 18:29 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Подскажите с еще одним вопросом. Допустим письмо я принял, обработал, пометил для удаления, выполнил expunge. Из входящих письмо удалилось, но в архиве осталось (на ящике GMail) и к этому письму я могу повторно обратиться с помощью uid. Это особенность именно GMail? Или особенность IMAP и на такое поведение я могу рассчитывать на любом сервере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 09:29 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Фишка Gmail. Насколько я понимаю, это связано с организацией работы с "папками", которые в gmail заменены ярлыками. Описание imap_delete на php.net, а точнее коментарии содержат информацию по этому поводу. Ссылка . Сам комментарий по теме: This function seems not to work on "[Gmail]/All Mail" mailbox. This is because Gmails keeps only one copy of the message and mailboxes are no more than labels. Deleting a message from a mailbox only removes that label (except for "All Mail" mailbox). To delete from "All Mail" you have to use imap_mail_move() function and move the message to "[Gmail]/Trash" mailbox. Note: Names of mailboxes in Gmail depends on the language you're using. E.g.: in Spanish "All Mail" is "Todos" and "Trash" is "Papelera". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 11:14 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Никак не пойму, можно ли с помощью протокола IMAP отправить почту? Или для отправки нужно использовать SMTP? Соответствующие функции (imap_mail или imap_append) вроде бы есть, но мне ни разу не удалось отправить сообщение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 13:04 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B., IMAP -это такой же клиентский протокол как и POP3. При POP3 сообщение закачивается на клиента,при IMAP4 закачиваются заголовки, а сообщение хранится на сервере. Отправкой сообщений занимается только SMTP сервер. С помощью IMAP вы можете отправить сообщение только на ваш SMTP сервер, который и будет заниматься отправкой почты дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 13:57 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
kunaksergeyС помощью IMAP вы можете отправить сообщение только на ваш SMTP сервер, который и будет заниматься отправкой почты дальше. Мне это и надо. Однако не получилось, по крайней мере на GMail. То ли в GMail этот метод не разрешен, то ли нужно было добавлять письмо в папку "Исходящие", с учетом локализации имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 14:06 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B.Мне нужно из скрипта наладить работу с электронной почтой. Используется GMail, поэтому обычный mail не подойдет, нужна полноценная работа с TLS. Насколько я понял, для этого обычно используют PHPMailer. Это оптимальный вариант или есть способы лучше? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. думаю да! правда у меня на GMail всё отсылалось обычным mail(). правда если заголовки прописать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2015, 09:00 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
После нескольких дней нормальной работы начались странные глюки. Время от времени скрипт не может подключиться по IMAP. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2015, 16:50 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B.даже если их увеличить до 5 минут, ничего не меняетсяНу а с другого клиента или с другого хоста есть коннект в это время? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2015, 18:36 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
Alibek B., А как часто вы обращаетесь..smtp то чужой. Может стоять защита от роботов какая нибудь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2015, 19:48 |
|
||
|
PHP, работа с почтой (прием/отправка)
|
|||
|---|---|---|---|
|
#18+
С другого хоста не пробовал, завтра попробую. Скрипт запускается раз у час, иногда запускаю вручную (через 10-15 минут). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2015, 21:36 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38917070&tid=1461882]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 429ms |

| 0 / 0 |
