Create Drupal Content by Sending an Email

Milos Bovan | @mbovan

bovan.me/drupaldays

Miloš Bovan (@mbovan)

  • Drupal 8 Developer at MD Systems
  • Student at Google Summer of Code 2016
  • Mentor at Google Code-In 2016

MD Systems

  • World's top Drupal contributor
  • Drupal 8 experts
  • 20% of every project to the community
  • Full projects, bootstrap weeks, consulting, ...

What we'll cover

  • Use-cases
  • Mailhandler overview
  • Inmail architecture
  • Current status
  • Future ideas

Why emails?

March 2015, The Radicati Group

Use-cases

  • Media publishing websites
  • An additional channel of content creation
  • Comment replies

Mailhandler + Inmail

  • Redefined for Drupal 8
  • Based on Inmail
  • Pluggable

Features

  • Creating content and comments via email
  • Security (support for PGP-signed emails)
  • Easy setup
  • Footer separation

Architecture

Architecture

PGP Analyzer

  • Default support for digitally signed emails
  • An additional layer or security
  • Easy setup

Entity Type Analyzer

  • [{entity_type}][{bundle}] parsing
  • Validation

Sender Analyzer

  • Identifies e-mail sender
  • Matches the user
  • Disabled by default

Footer Analyzer

  • Identifies e-mail message footer
  • Basic implementation
  • 2 cases supported:
    • "-- \n" (RFC 3676)
    • "On {day}, {month} {date}, {year} at {hour}:{minute} {AM|PM}" (Gmail standard)

Body Analyzer

  • Analyzes the mail body
  • Body manipulation

Node Handler

  • Authenticates and authorizes a user
  • Matches type, body, uid, title based on analyzed data
  • Creates a new node entity

Comment Handler

  • Available in the submodule
  • Validates a user
    • Authentication
    • Authorization
    • Signature verification
  • Extracts referenced #ID information
  • Matches entity_type, entity_id, subject, comment_body, uid
  • Creates a new comment entity

How it works?

The current status

  • Still under development
  • API breaks
  • Collect integration
  • Extensive test coverage

The current status

  • E-mail display

E-mail display

Next steps

  • Drupal as a CRM
    • Inmail + Collect + CRM Core
  • Mailhandler
    • Rules integration
    • Handle Drupal commands
Made with Slides.com