2009-07-30 27 views
8

Ho eseguito un po 'di manipolazione della posta in arrivo con Gmail tramite le funzioni IMAP in PHP, ma una cosa che non ho trovato è un modo per creare messaggi. Non sono sicuro che sia necessario IMAP o SMTP, ma mi piacerebbe utilizzare PHP per creare un nuovo messaggio (in particolare una bozza) che viene archiviato nella mia casella di posta con tutto pronto per l'invio in un secondo momento. Come faccio a fare questo?Creazione di messaggi (ovvero bozze) in Gmail con IMAP/SMTP?

+0

FYI ho aggiornato il mio risposta –

risposta

13

Si potrebbe desiderare di guardare imap_mail_compose()

Modifica Questo non crea il messaggio sul server. Devi anche usare imap_append().

Ulteriori Modifica Questo sembra funzionare bene:

<?php 
$rootMailBox = "{imap.gmail.com:993/imap/ssl}"; 
$draftsMailBox = $rootMailBox . '[Google Mail]/Drafts'; 

$conn = imap_open ($rootMailBox, "[email protected]", "password") or die("can't connect: " . imap_last_error()); 

$envelope["to"] = "[email protected]"; 
$envelope["subject"] = "Test Draft"; 

$part["type"] = TYPETEXT; 
$part["subtype"] = "plain"; 
$part["description"] = "part description"; 
$part["contents.data"] = "Testing Content"; 

$body[1] = $part; 

$msg = imap_mail_compose($envelope, $body); 

if (imap_append($conn, $draftsMailBox, $msg) === false) { 
     die("could not append message: " . imap_last_error()) ; 
} 
+0

Grande, grazie! Non ero sicuro se questo effettivamente creato il messaggio sul server o meno. I documenti fanno sembrare che crei solo una stringa MIME degli array $ envelope e $ body. – Kevin

+0

Sì, penso che potresti avere ragione –

+0

Grazie per la modifica, ho appena scoperto anche imap_append. – Kevin

-2

si dovrebbe essere in grado di creare bozze semplicemente muovendo il messaggio composto in Bozze floder ...

+3

La composizione del messaggio per iniziare era il problema che stavo avendo :) – Kevin

Problemi correlati