Merge lp://qastaging/~sylvain-calador/poweremail/smtp-no-auth into lp://qastaging/poweremail/trunk

Proposed by Sylvain Calador
Status: Merged
Approved by: Sharoon Thomas http://openlabs.co.in
Approved revision: 145
Merged at revision: not available
Proposed branch: lp://qastaging/~sylvain-calador/poweremail/smtp-no-auth
Merge into: lp://qastaging/poweremail/trunk
Diff against target: 55 lines (+9/-7)
1 file modified
poweremail_core.py (+9/-7)
To merge this branch: bzr merge lp://qastaging/~sylvain-calador/poweremail/smtp-no-auth
Reviewer Review Type Date Requested Status
Sharoon Thomas http://openlabs.co.in Approve
Review via email: mp+15595@code.qastaging.launchpad.net
To post a comment you must log in.
Revision history for this message
Sylvain Calador (sylvain-calador) wrote :

Add support for SMTP servers with no AUTH extension.

Revision history for this message
Sharoon Thomas http://openlabs.co.in (sharoonthomas) wrote :

I approve the merge.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'poweremail_core.py'
2--- poweremail_core.py 2009-12-02 18:11:23 +0000
3+++ poweremail_core.py 2009-12-03 08:45:23 +0000
4@@ -57,8 +57,8 @@
5
6 'smtpserver': fields.char('Server', size=120, required=True, readonly=True, states={'draft':[('readonly', False)]}, help="Enter name of outgoing server,eg:smtp.gmail.com "),
7 'smtpport': fields.integer('SMTP Port ', size=64, required=True, readonly=True, states={'draft':[('readonly', False)]}, help="Enter port number,eg:SMTP-587 "),
8- 'smtpuname': fields.char('User Name', size=120, required=True, readonly=True, states={'draft':[('readonly', False)]}),
9- 'smtppass': fields.char('Password', size=120, invisible=True, required=True, readonly=True, states={'draft':[('readonly', False)]}),
10+ 'smtpuname': fields.char('User Name', size=120, required=False, readonly=True, states={'draft':[('readonly', False)]}),
11+ 'smtppass': fields.char('Password', size=120, invisible=True, required=False, readonly=True, states={'draft':[('readonly', False)]}),
12 'smtpssl':fields.boolean('Use SSL', states={'draft':[('readonly', False)]}, readonly=True),
13 'send_pref':fields.selection([
14 ('html', 'HTML otherwise Text'),
15@@ -128,17 +128,18 @@
16 #checks SMTP credentials and confirms if outgoing connection works
17 rec = self.browse(cr, uid, ids)[0]
18 if rec:
19- if rec.smtpserver and rec.smtpport and rec.smtpuname and rec.smtppass:
20+ if rec.smtpserver and rec.smtpport:
21 try:
22 serv = smtplib.SMTP(rec.smtpserver, rec.smtpport)
23+ serv.ehlo()
24 if rec.smtpssl:
25- serv.ehlo()
26 serv.starttls()
27 serv.ehlo()
28 except Exception, error:
29 raise osv.except_osv(_("SMTP Server Error"), _("An error occurred : %s ") % error)
30 try:
31- serv.login(rec.smtpuname, rec.smtppass)
32+ if serv.has_extn('AUTH') or rec.smtpuname or rec.smtppass:
33+ serv.login(rec.smtpuname, rec.smtppass)
34 except Exception, error:
35 raise osv.except_osv(_("SMTP Server Login Error"), _("An error occurred : %s ") % error)
36 raise osv.except_osv(_("Information"), _("SMTP Test Connection Was Successful"))
37@@ -193,7 +194,7 @@
38 #This function returns a SMTP server object
39 logger = netsvc.Logger()
40 core_obj = self.browse(cr, uid, id)
41- if core_obj.smtpserver and core_obj.smtpport and core_obj.smtpuname and core_obj.smtppass and core_obj.state == 'approved':
42+ if core_obj.smtpserver and core_obj.smtpport and core_obj.state == 'approved':
43 try:
44 serv = smtplib.SMTP(core_obj.smtpserver, core_obj.smtpport)
45 if core_obj.smtpssl:
46@@ -204,7 +205,8 @@
47 logger.notifyChannel(_("Power Email"), netsvc.LOG_ERROR, _("Mail from Account %s failed. Probable Reason:Could not connect to server\nError: %s") % (id, error))
48 return False
49 try:
50- serv.login(core_obj.smtpuname, core_obj.smtppass)
51+ if core_obj.smtpuname and core_obj.smtppass:
52+ serv.login(core_obj.smtpuname, core_obj.smtppass)
53 except Exception, error:
54 logger.notifyChannel(_("Power Email"), netsvc.LOG_ERROR, _("Mail from Account %s failed. Probable Reason:Could not login to server\nError: %s") % (id, error))
55 return False