PHP.mk документација

imap_append

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.imap-append.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.imap-append.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
imap_append

Референца за `function.imap-append.php` со подобрена типографија и навигација.

function.imap-append.php

imap_append

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_appendДодај порака од стринг во одредено сандаче

= NULL

imap_append(
         IMAP\Connection $imap,
         string $folder,
         string $message,
         ?string $options = null,
         ?string $internal_date = null
): bool

Додава стринг message во избраното folder.

Параметри

imap

Еден IMAP\Connection instance.

folder

Креира нов сандаче специфициран од imap_open() за повеќе информации

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Проследувањето на недоверливи податоци на овој параметар е insecure, освен ако imap.enable_insecure_rsh е оневозможено.

message

Пораката што треба да се додаде, како стринг

Кога разговарате со Cyrus IMAP серверот, мора да користите "\r\n" како терминатор на крајот од линијата наместо "\n" или операцијата ќе пропадне

options

Ако е обезбедено, options исто така ќе биде запишано во folder

internal_date

Ако овој параметар е поставен, тој ќе го постави INTERNALDATE на додадената порака. Параметарот треба да биде стринг со датум што е во согласност со спецификациите на rfc2060 за вредност на date_time.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Дневник на промени

Верзија = NULL
8.1.0 На imap параметарот очекува IMAP\Connection инстанца сега; претходно, валидна imap resource се очекуваше.
8.0.0 options and internal_date се сега null.

Примери

Пример #1 imap_append() example

<?php
$imap
= imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

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

imap_append($imap, "{imap.example.org}INBOX.Drafts"
, "From: [email protected]\r\n"
. "To: [email protected]\r\n"
. "Subject: test\r\n"
. "\r\n"
. "this is a test message, please ignore\r\n"
);

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

imap_close($imap);
?>

Белешки од корисници 4 белешки

rixsta на hotmail точка com
пред 13 години
Hi,

As we have been struggling with this for some time I wanted to share how we got imap_append working properly with all MIME parts including attachments.  If you are sending email and also wish to append the sent message to the Sent Items folder, I cannot think of an easier way to do this, as follows:

1) Use SwiftMailer to send the message via PHP.
$message = Swift_Message::newInstance("Subject goes here");
(then add from, to, body, attachments etc)
$result = $mailer->send($message);

2) When you construct the message in step 1) above save it to a variable as follows:

$msg = $message->toString(); (this creates the full MIME message required for imap_append()!!  After this you can call imap_append like this:

imap_append($imap_conn,$mail_box,$msg."\r\n","\\Seen");

I hope this helps the readers, and prevents saves people from doing what we started doing - hand crafting the MIME messages :-0
jab_creations на yahoo точка com
пред 1 година
This function is how you take a sent message in your mail shell and place a copy of it in the remote mail server's sent folder.

It is however not intuitive and I struggled for a couple hours so I'm placing these notes here to spare others the aggravation. Some of the errors I encountered:

 - Can't append to mailbox with such a name
 - Internal date not correctly formatted

The second/folder parameter is not the string you might think it is (e.g. "Sent", "Inbox.Sent", etc). It is the connection information used by imap_open() which doesn't make sense as the connection is already open! Whatever, here is a basic example addressing those three errors:

<?php
$server = '{mail.example.com:993/ssl/imap}INBOX.Sent';
$mail_connection_folder = imap_open($server, $user, $pass);

if ($mail_connection)
{
 $result = imap_append($mail_connection, $server, $message_string_raw, '\\Seen', date('d-M-Y H:i:s O'));
}
?>

I had been using the PHP Pear Mail extension which did a fantastic job with DMARC, SPF, DKIM, etc. However it's not well maintained and I couldn't figure out if it returns the email message string. The PHPMailer library (https://github.com/PHPMailer/PHPMailer) does return the message string:

<?php
//Skip to key parts:
$result = $mail->send();

if ($result)
{
 $message_string_raw = $mail->getSentMIMEMessage();
}
else {/*error handling*/}
?>

Hopefully this will spare some folks a lot of aggravation.
alex at 1stleg dot com
пред 10 години
You can use PHPMailer ( https://github.com/PHPMailer/PHPMailer/ ) with imap.

<?php
// after creating content of mail you have to run preSend() - part of send() method
$mail->send();
// and you can get whole raw message with getSentMIMEMessage() method
imap_append($imap, $mailserver.'INBOX.Sent',$mail->getSentMIMEMessage(), "\\Seen");
kaminski на istori точка com
пред 15 години
The date format string to use when creating $internal_date is 'd-M-Y H:i:s O'.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.