From 77acc09e2f85dd3f1b54dd1643cb28e47fc43466 Mon Sep 17 00:00:00 2001 From: Adam Coddington Date: Sun, 28 Oct 2012 12:25:37 -0700 Subject: [PATCH] Allow specification of from e-mail on mailbox model. --- ...0010_auto__add_field_mailbox_from_email.py | 46 +++++++++++++++++++ django_mailbox/models.py | 23 ++++++++++ 2 files changed, 69 insertions(+) create mode 100644 django_mailbox/migrations/0010_auto__add_field_mailbox_from_email.py diff --git a/django_mailbox/migrations/0010_auto__add_field_mailbox_from_email.py b/django_mailbox/migrations/0010_auto__add_field_mailbox_from_email.py new file mode 100644 index 0000000..9261e6d --- /dev/null +++ b/django_mailbox/migrations/0010_auto__add_field_mailbox_from_email.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Mailbox.from_email' + db.add_column('django_mailbox_mailbox', 'from_email', + self.gf('django.db.models.fields.CharField')(default=None, max_length=255, null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Mailbox.from_email' + db.delete_column('django_mailbox_mailbox', 'from_email') + + + models = { + 'django_mailbox.mailbox': { + 'Meta': {'object_name': 'Mailbox'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'from_email': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'uri': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}) + }, + 'django_mailbox.message': { + 'Meta': {'object_name': 'Message'}, + 'body': ('django.db.models.fields.TextField', [], {}), + 'from_header': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'in_reply_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'replies'", 'null': 'True', 'to': "orm['django_mailbox.Message']"}), + 'mailbox': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'messages'", 'to': "orm['django_mailbox.Mailbox']"}), + 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'outgoing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'processed': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'to_header': ('django.db.models.fields.TextField', [], {}) + } + } + + complete_apps = ['django_mailbox'] \ No newline at end of file diff --git a/django_mailbox/models.py b/django_mailbox/models.py index d32c074..f99111b 100755 --- a/django_mailbox/models.py +++ b/django_mailbox/models.py @@ -4,6 +4,7 @@ import rfc822 import urllib import urlparse +from django.conf import settings from django.core.mail.message import make_msgid from django.db import models from django_mailbox.transports import Pop3Transport, ImapTransport,\ @@ -35,6 +36,24 @@ class Mailbox(models.Model): null=True, default=None, ) + from_email = models.CharField( + max_length=255, + help_text=""" + Example: MailBot +
+ 'From' header to set for outgoing email. +
+
+ If you do not use this e-mail inbox for outgoing mail, this + setting is unnecessary. +
+ If you send e-mail without setting this, your 'From' header will + be set to match the setting `DEFAULT_FROM_EMAIL`. + """, + blank=True, + null=True, + default=None, + ) active = models.BooleanField( blank=True, default=True, @@ -233,6 +252,10 @@ class Message(models.Model): pre-set it. """ + if self.mailbox.from_email + message.from_email = self.mailbox.from_email + else: + message.from_email = settings.DEFAULT_FROM_EMAIL message.extra_headers['Message-ID'] = make_msgid() message.extra_headers['Date'] = formatdate() message.extra_headers['In-Reply-To'] = self.message_id