diff --git a/src/collective/dms/mailcontent/behaviors.py b/src/collective/dms/mailcontent/behaviors.py
new file mode 100644
index 0000000..76cec54
--- /dev/null
+++ b/src/collective/dms/mailcontent/behaviors.py
@@ -0,0 +1,26 @@
+from z3c.form.browser.radio import RadioFieldWidget
+from zope.interface import alsoProvides
+from zope.schema import Choice
+
+from plone.autoform.interfaces import IFormFieldProvider
+from plone.autoform import directives as form
+from plone.directives.form import default_value
+from plone.supermodel import model
+
+from collective.dms.mailcontent import _
+
+
+class ISendingType(model.Schema):
+ """Sending type behavior"""
+ sending_type = Choice(title=_(u"Sending type"),
+ vocabulary='SendingTypes',
+ required=False)
+ form.widget(sending_type=RadioFieldWidget)
+
+
+@default_value(field=ISendingType['sending_type'])
+def sending_type_default_value(data):
+ return "normal"
+
+
+alsoProvides(ISendingType, IFormFieldProvider)
diff --git a/src/collective/dms/mailcontent/behaviors.zcml b/src/collective/dms/mailcontent/behaviors.zcml
new file mode 100644
index 0000000..796dac3
--- /dev/null
+++ b/src/collective/dms/mailcontent/behaviors.zcml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/collective/dms/mailcontent/configure.zcml b/src/collective/dms/mailcontent/configure.zcml
index 42391c2..d545919 100644
--- a/src/collective/dms/mailcontent/configure.zcml
+++ b/src/collective/dms/mailcontent/configure.zcml
@@ -10,6 +10,7 @@
+
diff --git a/src/collective/dms/mailcontent/profiles/testing/types.xml b/src/collective/dms/mailcontent/profiles/testing/types.xml
new file mode 100644
index 0000000..9baf38f
--- /dev/null
+++ b/src/collective/dms/mailcontent/profiles/testing/types.xml
@@ -0,0 +1,5 @@
+
+
diff --git a/src/collective/dms/mailcontent/profiles/testing/types/testtype.xml b/src/collective/dms/mailcontent/profiles/testing/types/testtype.xml
new file mode 100644
index 0000000..7e5bc3a
--- /dev/null
+++ b/src/collective/dms/mailcontent/profiles/testing/types/testtype.xml
@@ -0,0 +1,41 @@
+
+
+ Test type
+ None
+ string:${portal_url}/folder_icon.png
+ testtype
+ string:${folder_url}/++add++testtype
+
+ view
+ True
+ True
+
+ False
+ view
+
+
+
+ False
+ cmf.AddPortalContent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/collective/dms/mailcontent/tests/test_behaviors.py b/src/collective/dms/mailcontent/tests/test_behaviors.py
new file mode 100644
index 0000000..562ae6e
--- /dev/null
+++ b/src/collective/dms/mailcontent/tests/test_behaviors.py
@@ -0,0 +1,44 @@
+# -*- coding: utf8 -*-
+import unittest2 as unittest
+
+from zope.component import getUtility
+
+from plone.behavior.interfaces import IBehavior
+from plone.autoform.interfaces import IFormFieldProvider
+from plone.app.testing.helpers import setRoles
+from plone.app.testing.interfaces import TEST_USER_NAME, TEST_USER_ID
+
+from ecreall.helpers.testing.base import BaseTest
+
+from collective.dms.mailcontent.testing import INTEGRATION
+from collective.dms.mailcontent.behaviors import ISendingType, sending_type_default_value
+
+
+class TestBehaviors(unittest.TestCase, BaseTest):
+ """Tests behaviors"""
+
+ layer = INTEGRATION
+
+ def setUp(self):
+ super(TestBehaviors, self).setUp()
+ self.portal = self.layer['portal']
+ setRoles(self.portal, TEST_USER_ID, ['Manager'])
+ self.login(TEST_USER_NAME)
+ self.portal.invokeFactory('testtype', 'testitem')
+ self.testitem = self.portal['testitem']
+
+ def test_behaviors_installation(self):
+ sending_type_behavior = getUtility(IBehavior,
+ name='collective.dms.mailcontent.behaviors.ISendingType')
+ self.assertEqual(sending_type_behavior.interface, ISendingType)
+ IFormFieldProvider.providedBy(sending_type_behavior.interface)
+
+ def test_sending_type_fields(self):
+ item = self.testitem
+ self.assertIsNone(item.getAttributes())
+ self.assertTrue(hasattr(item, 'sending_type'))
+ item.sending_type = 'registered'
+ self.assertEqual(item.sending_type, 'registered')
+
+ def test_sending_type_default_value(self):
+ self.assertEqual(sending_type_default_value(''), 'normal')
diff --git a/src/collective/dms/mailcontent/vocabulary.py b/src/collective/dms/mailcontent/vocabulary.py
new file mode 100644
index 0000000..4cbff05
--- /dev/null
+++ b/src/collective/dms/mailcontent/vocabulary.py
@@ -0,0 +1,20 @@
+from five import grok
+
+from zope.schema.vocabulary import SimpleVocabulary
+from zope.schema.interfaces import IVocabularyFactory
+
+from . import _
+
+
+class SendingTypes(grok.GlobalUtility):
+ grok.name("SendingTypes")
+ grok.implements(IVocabularyFactory)
+
+ def __call__(self, context):
+ terms = []
+ types = [('normal', _("Normal")),
+ ('registered', _("Registered"))]
+ for (token, value) in types:
+ term = SimpleVocabulary.createTerm(token, token, value)
+ terms.append(term)
+ return SimpleVocabulary(terms)