Create Drupal Content by
Sending an Email

Miloš Bovan | @mbovan

bovan.me/ironcamp

Miloš Bovan (@mbovan)

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

MD Systems

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

Why e-mails?

March 2015, The Radicati Group

Use-cases

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

Mailhandler

  • Redefined for Drupal 8
  • Based on Inmail
  • Pluggable

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

  • 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 changes
  • Collect integration
  • Extensive test coverage

E-mail display

Next steps

  • Drupal as a CRM
    • Inmail + Collect + CRM Core
  • Mailhandler
    • Handle Drupal commands
    • Rules integration

Thank you! Questions?

Miloš Bovan | @mbovan

bovan.me/ironcamp