За последние 24 часа нас посетили 20594 программиста и 1591 робот. Сейчас ищут 1126 программистов ...

отправка почты через IMAP средствами php

Тема в разделе "Работа с почтой", создана пользователем nikemat, 6 дек 2015.

  1. nikemat

    nikemat Guest

    вопрос по синхронизации почты с сервера с почтовым клиентом outlook (настройки по умолчанию).
    если письмо было отправлено не из программы, а с сервера (c помощью php скрипта) и есть там в папке отправленных- оно отобразится в клиенте outlook? данные синхронизируются?
    подскажите, кто пользуется почтовиком

    ну грубо говоря у вас почта на яндексе. вы где-то в гостях через web-интерфейс зашли на свою почту и отправили письмо. пришли домой- открыли аутлук- и в отправленных у вас отображается это письмо...

    и ещё такой подвопрос: как оно вообще попадёт в отправленные на сервере если отправлено php скриптом с помощью функции mail()
    (предполагается, что сервер, на который настроен аутлук и сервер отвечающий за отправку писем из php- один и тот же)

    пока я додумался только до того, чтобы отправлять скрытую копию на свой же адрес. но это письмо никак не переместится в отправленные, ибо оно- входящее. полагаю, надо копать в сторону imap?

    и плиз, киньте код простейшей реализации отправки писем по imap.
    пока научился папки с почтового сервера читать, отправить пока не получается.
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Muhammet нравится это.
  3. nikemat

    nikemat Guest

    да чё они какие большие все))
    целые библиотеки))
    мне надо, чтобы то же самое, что с mail(), только отображалось на сервере в отправленных
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    nikemat, всё на самом деле просто. попробую объяснить.
    есть MTA (mail transfer agent) - утилиты занимающиеся пересылкой сообщений друг другу (они вообще везде).
    есть MDA (mail delivery agent) - это финальный MTA который полученное сообщение записывает в почтовый ящик пользователя.
    есть MUA (mail user agent) - это изначальный MTA который порождает собственно сообщение.
    так вот, ты когда на яндексе отправляешь письмо - веб-интерфейс связывается с муа связанным с этим почтовым ящиком и этот муа кидает письмо на свой ближайший мта - сервер исходящей почты данного почтового ящика. при этом этот же муа и копирует письмо в отправленные.
    то же делает и аутлук и другой почтовик - он кидает письмо на сервер исходящей почты а потом записывает копию письма в папку отправленных.
    если у тебя почтовик иначе настроен - он ничего не сохранит в папку отправленных.
    пхп по сути тоже является муа - он генерирует минимальный необходимый для доставки текст сообщения -, но он для скорости использует как мта системную утилиту sendmail которая как не сложно догадаться должна тупо перекинуть сообщение но уже в более почтовом формате.
    ни пхп ни сэндмэйл никаких копий не сохраняют - один тупо создает и кидает а второй тупо перекидывает дальше.
    однако, если ты вместо сэндмейла будешь использовать мта более крутого почтового комплекса - постфикса например - то ты можешь настроить сохранение копии исходящего письма. пхп об этом ничего не будет знать так как его задача просто записать двоичные данные в сокет или порт назначенного мта.
    когда ты использует пхп в связке с аймапом то получается что сам пых заходит на почтовый сервер с немного другой стороны и поэтому есть возможность сохранять копии исходящих писем.
     
    denis01 нравится это.
  5. nikemat

    nikemat Guest

    понятно. всё это мне сложно пока..((
    ладно, скажу заказчику, что если хочет видеть отправленные в outlook, пусть через неё и отправляет. ссылку с mailto: я сделаю.
    если ему пофиг, что там именно ушло адресату, то пусть пользуется php+sendmail.
    ради одного пожелания заказчика насчет почты качать кучу файлов на сотни килобайт- бред.
    у меня весь остальной функционал меньше весит..
    я думал мне тут напишшут щас функцию типа:<?php imap_open(params); imap_mail(params) ?>
     
  6. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    если мне память не изменяет то да, там примерно так просто и есть. погугли.
     
  7. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Отправлять надо не через IMAP, а через SMTP
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Тоже хороший вариант если SMTP есть на сервер
     
  9. nikemat

    nikemat Guest

    ну так mail() через smtp и отправляет. судя по настройкам сервера
     
  10. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Смотри ещё настройки сервера, может там есть инструкции что делать с письмами которые ушли через SMTP
     
  11. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    надо же как я жестко обманулся... рассказал по сути про смтп примешав аймап... воскресенье...