Skip to content
Brennan Novak edited this page Nov 13, 2013 · 9 revisions

Contacts are stored on disk as RFC6350 compliant VCARDs.

Base code for Contacts is in mailpile/plugins/contacts.py

Importers

Exporters

Synchronization

Modulo some complexity, import + export = syncrhonization. Let's get import working first.

Field validators

We want to make sure there's no crud in some fields, because we expect those fields to be actionable. Field validators may therefore be useful.

Not done:

  • E-mail field
  • Website field
  • ...?

Context providers

A context provider is an import filter which, when provided with certain information about a contact, extracts useful context about the contact to deepen the user's understanding of what the user is doing, who they are, and how best to contact them.

This is a slightly creepy feature, but actually fairly reasonable considering it is primarily using public info or info that is otherwise available to the Mailpile user in question. Heck, it might even encourage people to think a bit more about privacy...

This is not NOT DONE in anyway yet, but here are the API's we're considering about:

Due to the technical overhead and steps required for Facebook & Twitter, we are considering creating a Mailpile web service that handles making the OAuth requests and returns the data for you contacts. However, we are aware of the privacy issues of this approach which will make it unacceptable for many users. For those privacy minded users we will try to make the process as easy as possible so they the only requests will be between their Mailpile <---> Twitter / Facebook

Hooks

  • register_contact_importer(importer) - importer is subclass of ContactImporter.
  • register_contact_exporter(exporter) - exporter is subclass of ContactExporter.
  • register_contact_field_validator(field, validator) - field is string, validator is subclass of ContactFieldValidator.
  • register_contact_context_provider(provider) - provider is subclass of ContactContextProvider.
Clone this wiki locally