Размещение письма в папке "Отправленные" на Яндекс.почта

A3
На сайте с 11.11.2013
Offline
1
9374

Здравствуйте.

Никак не могу на PHP разместить письмо в папку "Отправленные" на Яндекс.почта.

Код нашёл в интернете (не для яндекса)


$stream = imap_open("{imap.yandex.ru:143}INBOX.Sent", "user", "pass");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{imap.yandex.ru:143}INBOX.Sent"
, "From: me@example.com\r\n"
. "To: you@example.com\r\n"
. "Subject: test\r\n"
. "\r\n"
. "this is a test message, please ignore\r\n"
);

$check = imap_check($stream);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($stream);

В ответ получаю ошибки:

Notice: Unknown: SELECT no such folder. sc=4Lhb9PFUh0Uw (errflg=2) in Unknown on line 0

Notice: Unknown: [TRYCREATE] APPEND backend error during retrieval folder list sc=4Lhb9PFUh0Uw (errflg=2) in Unknown on line 0

Судя по ошибке - не правильно указано название папки. Как правильно указать название папки "Отправленные" в Яндекс.почта?

P.S.:

Код вывода имён папок


$mbox = imap_open("{imap.yandex.ru:143}", "user", "pass");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.yandex.ru:143}", "*");

if ($folders == false) {
echo "Call failed<br />\n";
} else {
foreach ($folders as $val) {
echo $val . "<br />\n";
}
}
imap_close($mbox);

Выдаёт результат:

Mailboxes

{imap.yandex.ru:143}&BBgEQQRFBD4ENARPBEkEOAQ1-

{imap.yandex.ru:143}&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-

{imap.yandex.ru:143}&BCEEPwQwBDw-

{imap.yandex.ru:143}&BCMENAQwBDsENQQ9BD0ESwQ1-

{imap.yandex.ru:143}&BCcENQRABD0EPgQyBDgEOgQ4-

{imap.yandex.ru:143}&BCcENQRABD0EPgQyBDgEOgQ4-|template

{imap.yandex.ru:143}INBOX

pragmatik
На сайте с 19.03.2013
Offline
133
#1

правильно ли я понял: Вы делаете рассылку средствами какого-то скрипта, но хотите, чтобы разосланные сообщения хранились в папке "Отправленные" в яндекс.почте?

A3
На сайте с 11.11.2013
Offline
1
#2

Да. Я отправляю почту по SMTP, здесь проблем не возникает.

Нужно, чтобы отправленное письмо сохранилось в папке "Отправленные".

pragmatik
На сайте с 19.03.2013
Offline
133
#3
andrey3761:
Да. Я отправляю почту по SMTP, здесь проблем не возникает.
Нужно, чтобы отправленное письмо сохранилось в папке "Отправленные".

хм, а как Вам схема:

задать для всех отправляемых писем отправку скрытой копии на ваш ящик

$headers .= "Bcc: my@site.ru\r\n";
а в этом ящике, для входящих писем с ящика, с которого ведется рассылка, в настройках обработки почты ввести фильтр типа:

A3
На сайте с 11.11.2013
Offline
1
#4

Ваш вариант интересный.

Но когда в заголовке указываю

$headers .= "Bcc: my@yandex.ru\r\n";

то копия письма не приходит на него. Указываю почту гугла - тоже самое. Отправляю через SMTP яндекса.

---------- Добавлено 16.12.2013 в 22:17 ----------

Победил!

Используется кодировка UTF7-IMAP.

Код, который ложит письмо в папку "Отправленные"


$imap_host = "{imap.yandex.ru:143}" . mb_convert_encoding( 'Отправленные', "UTF7-IMAP", "UTF-8" );
$stream = imap_open( $imap_host, "user", "pass" );

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, $imap_host
, "From: me@example.com\r\n"
. "To: you@example.com\r\n"
. "Subject: test\r\n"
. "\r\n"
. "this is a test message, please ignore\r\n"
);

$check = imap_check($stream);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($stream);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий