2009-07-30 20 views
8

He hecho bastante manipulación de la bandeja de entrada con Gmail a través de funciones IMAP en PHP, pero una cosa que no he encontrado es una forma de crear mensajes. No estoy seguro de si se requiere IMAP o SMTP, pero me gustaría usar PHP para crear un nuevo mensaje (específicamente un borrador) que se almacena en mi bandeja de entrada con todo listo para enviar el envío en una fecha posterior. ¿Cómo hago esto?¿Crear mensajes (es decir, borradores) en Gmail con IMAP/SMTP?

+0

FYI He actualizado mi respuesta –

Respuesta

13

Es posible que desee ver en imap_mail_compose()

Editar Esto no crea el mensaje en el servidor. También debe usar imap_append().

Además Editar Esto parece funcionar bien:

<?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

Genial, gracias! No estaba seguro de si esto realmente creó el mensaje en el servidor o no. Los documentos lo hacen parecer que solo crea una cadena MIME de las matrices $ envelope y $ body. – Kevin

+0

sí, creo que podría tener razón –

+0

Gracias por esa edición, acabo de descubrir imap_append también. – Kevin

-2

que debería ser capaz de crear corrientes de aire con sólo mover el mensaje redactado en Borradores Floder ...

+3

Componer el mensaje para empezar era el problema que estaba teniendo :) – Kevin

Cuestiones relacionadas