added Send From field in newsletter
diff --git a/support/doctype/newsletter/newsletter.js b/support/doctype/newsletter/newsletter.js
index 1f75edc..69881cd 100644
--- a/support/doctype/newsletter/newsletter.js
+++ b/support/doctype/newsletter/newsletter.js
@@ -23,4 +23,9 @@
 			});
 		})
 	}
+
+	if(doc.__islocal && !doc.send_from) {
+		cur_frm.set_value("send_from", 
+			repl("%(fullname)s <%(email)s>", wn.user_info(doc.owner)));
+	}
 }
\ No newline at end of file
diff --git a/support/doctype/newsletter/newsletter.py b/support/doctype/newsletter/newsletter.py
index 536b649..c4b622a 100644
--- a/support/doctype/newsletter/newsletter.py
+++ b/support/doctype/newsletter/newsletter.py
@@ -20,6 +20,7 @@
 import webnotes.utils
 from webnotes.utils import cstr
 from webnotes.model.doc import Document
+from webnotes import _
 
 class DocType():
 	def __init__(self, d, dl):
@@ -51,7 +52,7 @@
 		"""send emails to leads and customers"""
 		if self.doc.email_sent:
 			webnotes.msgprint("""Newsletter has already been sent""", raise_exception=1)
-		
+
 		self.all_recipients = []
 		self.send_count = {}
 		
@@ -82,8 +83,11 @@
 			", ".join(["%d %s(s)" % (self.send_count[s], s) for s in self.send_count]))
 			
 	def test_send(self, doctype="Lead"):
+		self.validate_send()
+
 		args = self.dt_map[doctype]
-		sender = webnotes.utils.get_email_id(self.doc.owner)
+
+		sender = self.doc.send_from or webnotes.utils.get_email_id(self.doc.owner)
 		recipients = self.doc.test_email_id.split(",")
 		from webnotes.utils.email_lib.bulk import send
 		send(recipients = recipients, sender = sender, 
@@ -98,12 +102,14 @@
 		return recipients
 		
 	def send(self, query_key, doctype):
+		self.validate_send()
+
 		webnotes.conn.auto_commit_on_many_writes = True
 		if isinstance(query_key, basestring) and self.query_map.has_key(query_key):
 			recipients = self.get_recipients(query_key)
 		else:
 			recipients = query_key
-		sender = webnotes.utils.get_email_id(self.doc.owner)
+		sender = self.doc.send_from or webnotes.utils.get_email_id(self.doc.owner)
 		args = self.dt_map[doctype]
 		self.send_count[doctype] = self.send_count.setdefault(doctype, 0) + \
 			len(recipients)
@@ -112,7 +118,17 @@
 		send(recipients = recipients, sender = sender, 
 			subject = self.doc.subject, message = self.doc.message,
 			doctype = doctype, email_field = args["email_field"])
-			
+
+	def validate_send(self):
+		if self.doc.fields.get("__islocal"):
+			webnotes.msgprint(_("""Please save the Newsletter before sending."""),
+				raise_exception=1)
+
+		import conf
+		if getattr(conf, "status", None) == "Trial":
+			webnotes.msgprint(_("""Sending newsletters is not allowed for Trial users, \
+				to prevent abuse of this feature."""), raise_exception=1)
+
 lead_naming_series = None
 def create_lead(email_id):
 	"""create a lead if it does not exist"""
diff --git a/support/doctype/newsletter/newsletter.txt b/support/doctype/newsletter/newsletter.txt
index 68fbabb..4382379 100644
--- a/support/doctype/newsletter/newsletter.txt
+++ b/support/doctype/newsletter/newsletter.txt
@@ -2,9 +2,9 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-12-07 15:15:31", 
+  "creation": "2013-01-01 13:46:34", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-01 10:54:40"
+  "modified": "2013-01-02 13:03:29"
  }, 
  {
   "autoname": "naming_series:", 
@@ -108,6 +108,15 @@
   "permlevel": 0
  }, 
  {
+  "description": "If specified, send the newsletter using this email address", 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "Send From", 
+  "fieldname": "send_from", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
   "doctype": "DocField", 
   "label": "Subject", 
   "fieldname": "subject",