Avoid crashing when parsing malformed mail header From
darcs-hash:20080725200559-86b55-48e00cc7822a2162159ba4bbe6386fbd3aea8bc0.gz
This commit is contained in:
@@ -157,17 +157,18 @@ class MailSender(HeadlineSender):
|
|||||||
"""
|
"""
|
||||||
message = MessageSender.create_message(self, to_account,
|
message = MessageSender.create_message(self, to_account,
|
||||||
(email_subject, email_body))
|
(email_subject, email_body))
|
||||||
msg_node = message.get_node()
|
if email_from is not None:
|
||||||
addresses_node = msg_node.newChild(None, "addresses", None)
|
msg_node = message.get_node()
|
||||||
address_ns = addresses_node.newNs("http://jabber.org/protocol/address",
|
addresses_node = msg_node.newChild(None, "addresses", None)
|
||||||
None)
|
address_ns = addresses_node.newNs("http://jabber.org/protocol/address",
|
||||||
addresses_node.setNs(address_ns)
|
None)
|
||||||
replyto_address_node = addresses_node.newChild(address_ns, "address",
|
addresses_node.setNs(address_ns)
|
||||||
None)
|
replyto_address_node = addresses_node.newChild(address_ns, "address",
|
||||||
replyto_address_node.setProp("type", "replyto")
|
None)
|
||||||
replyto_jid = email_from.replace('@', '%', 1) + "@" \
|
replyto_address_node.setProp("type", "replyto")
|
||||||
+ unicode(JID(to_account.jid).domain)
|
replyto_jid = email_from.replace('@', '%', 1) + "@" \
|
||||||
replyto_address_node.setProp("jid", replyto_jid)
|
+ unicode(JID(to_account.jid).domain)
|
||||||
|
replyto_address_node.setProp("jid", replyto_jid)
|
||||||
return message
|
return message
|
||||||
|
|
||||||
def create_message(self, to_account, data):
|
def create_message(self, to_account, data):
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
##
|
##
|
||||||
## test_component.py
|
## test_component.py
|
||||||
@@ -1301,6 +1303,25 @@ class MailSender_TestCase(JCLTestCase):
|
|||||||
self.assertEquals(addresses[0].prop("jid"),
|
self.assertEquals(addresses[0].prop("jid"),
|
||||||
"from%test.com@jmc.test.com")
|
"from%test.com@jmc.test.com")
|
||||||
|
|
||||||
|
def test_create_message_missing_email_from(self):
|
||||||
|
mail_sender = MailSender()
|
||||||
|
model.db_connect()
|
||||||
|
user1 = User(jid="test1@test.com")
|
||||||
|
account11 = IMAPAccount(user=user1,
|
||||||
|
name="account11",
|
||||||
|
jid="account11@jmc.test.com")
|
||||||
|
account11.online_action = MailAccount.RETRIEVE
|
||||||
|
account11.status = account.ONLINE
|
||||||
|
message = mail_sender.create_message(account11, (None,
|
||||||
|
"subject",
|
||||||
|
"message body"))
|
||||||
|
self.assertEquals(message.get_to(), user1.jid)
|
||||||
|
self.assertEquals(message.get_subject(), "subject")
|
||||||
|
self.assertEquals(message.get_body(), "message body")
|
||||||
|
addresses = message.xpath_eval("add:addresses/add:address",
|
||||||
|
{"add": "http://jabber.org/protocol/address"})
|
||||||
|
self.assertEquals(addresses, [])
|
||||||
|
|
||||||
def test_create_message_digest(self):
|
def test_create_message_digest(self):
|
||||||
mail_sender = MailSender()
|
mail_sender = MailSender()
|
||||||
model.db_connect()
|
model.db_connect()
|
||||||
|
|||||||
Reference in New Issue
Block a user