![]() |
Publicar en drupal mediante correo |
A continuación veremos cómo configurar todo para poder a través del envío de correos a una cuenta que gestionará nuestro sitio web publicar contenidos en este sin tener que entrar para nada. Para esto tenemos que tener instalados los siguientes módulos (les pongo además las versiones utilizadas al momento de escribir este artículo):
- Mailhandler 7.x-2.10
- Feeds 7.x-2.0-beta2
Administrative title: mi primer mailbox
Protocol: IMAP
Folder: INBOX
Domain: imap.gmail.com
Port: 993
Username: nombredeusuario@gmail.com
Password: contraseña
Extra commands: /ssl/novalidate-cert
Por defecto si tenemos activado el módulo Mailhandler PHP IMAP en la sección More Settings (más configuraciones) en la parte de Retrieval library debemos de tener seleccionado PHP IMAP, sino debemos seleccionarlo. Una vez terminado damos en salvar y damos entonces en Test connection para probar la conexión con la cuenta de correo. Si configuramos todo bien esto nos debe devolver como respuesta un mensaje de que pudo realizar la conexión y otro con la cantidad de mensajes que tiene la cuenta.
![]() |
Mailhandler conexión correcta |
Empezemos entonces con la primera sección Basic settings:
![]() |
Configuraciones básicas |
En la sección Fetcher -> Change seleccionamos Mailhandler fetcher ya que va a ser la vía por la que vamos a acceder al nuevo contenido a importar y damos en salvar.
En la sección Mailhandler fetcher lo dejamos como está por defecto (All), pues a veces cuando seleccionamos Nodes only que es la opción que deberiamos escoger puede dar problemas y no leer correctamente los correos.
En la sección Parser -> Change seleccionamos Mailhandler IMAP stream parser y guardamos.
En la sección Mailhandler IMAP stream parser dejamos como Authentication plugin -> "From" address authentication. En Available commands (comandos disponibles) podemos ver los comandos disponibles de los que vamos a hacer uso en otra sección, por defecto viene status, pero podemos habilitar otros comandos disponibles o crear los nuestros propios poniendo poniendo simplemente el nuevo comando en una línea debajo del que ya esta y así sucesivamente.
En la sección Processor -> Change dejamos la opción seleccionada Node processor ya que lo que vamos a crear son nuevos nodos.
En la sección Node processor -> Settings seleccionamos en Bundle -> Article que es el tipo de nodo que vamos a crear. Los demás valores los dejamos como vienen por defecto pues ya está seleccionado que lo que vamos a hacer es insertar nuevos nodos y no queremos actualizar nodos existentes. Como autor podemos dejar anonymous o escribir otro usuario que tenemos que tener creado en nuestro sitio y que queramos que aparesca como autor de los nuevos contenidos que importemos.
En la sección Node processor -> Mapping es en dónde vamos a especificar cada parte del correo que vamos a utilizar para conformar nuestro Nodo y que quedaría de esta forma:
![]() |
Parámetros de mapping |
Es importante para que el Feed funcione correctamente y puedan ser insertados los nodos que la dirección del correo enviado a la cuenta que utiliza nuestro sitio y que configuramos en el Mailhandler pertenezca a un usuario que tengamos creado en el sitio y que debe tener dicha dirección de correo asignada así como los permisos para insertar contenido en este caso.
Ahora para probarlo primero que todo enviamos un correo a la dirección que configuramos en el Mailhandler con un asunto que será nuestro título para el artículo y el contenido del correo será el del artículo (importante tener en cuenta lo que les explique en el párrafo anterior). nos dirigimos nuevamente a la sección Basic Settings -> Settings y hacemos clic en el enlace que tiene la url de nuestro sitio/import o simplemente la escribimos. En mi caso es http://localhost/drupal-7.51/import. Esto nos mostrara todos los imports que tenemos creado y hacemos clic en el import cuyo nombre es el que creamos para correrlo por primera vez. Nos muestra entonces los parámetros del Mailhandler que configuramos así cómo comandos, dejamos todos como está y damos en Import. Si todo sale satisfactoriamente esto nos debe mostrar un mensaje de que se encontró el mensaje en nuestro buzón de correo y que se ha creado un nodo.
![]() |
Import realizado correctamente |
![]() |
Mailhandler error |
Sí queremos cambiar el estado de este nuevo nodo a no publicado podemos hacerlo de dos vías:
- En la sección Mailhandler IMAP stream parser -> Settings en los comandos disponibles ponemos a status: 0 y salvamos. Seguidamente nos dirigimos a la sección Node processor -> Mapping añadimos uno nuevo:
![]() |
Mapping status |
- La segunda vía es dejando el comando status como estaba y en mapping añadirlo al target Published status. Pero entonces ahora en el correo que creamos debemos en el contenido escribir en la primera línea status: 0 y en las líneas inferiores nuestro contenido para el nodo.
![]() |
Mapping status 2 |
![]() |
Correo estructura |
Sign up here with your email
2 comentarios
Write comentariosInteresante propuesta, otra de las opciones de Drupal, aclarar que hay que tener instalado la libreria de php "php5-imap" en ubuntu "apt-get install php5-imap", esta no se activa por default por lo que hay que activarla de la siguiente forma "php5enmod imap" en una terminal y listo.
ReplyGracias por la contribución para el caso de linux.
ReplyDéjame saber cualquier duda, sugerencia o experiencia al respecto. ¡Espero tú opinión! También puedes comentar como anónimo. ConversionConversion EmoticonEmoticon