How to transmit a crash report ?
Stef Mientki
stef.mientki at gmail.com
Tue Feb 23 16:54:36 EST 2010
On 23-02-2010 15:21, Thomas wrote:
> On Feb 22, 9:27 pm, MRAB<pyt... at mrabarnett.plus.com> wrote:
>
>> Stef Mientki wrote:
>>
>>> hello,
>>>
>>
>>> in my python desktop applications,
>>> I'ld like to implement a crash reporter.
>>> By redirecting the sys.excepthook,
>>> I can detect a crash and collect the necessary data.
>>> Now I want that my users sends this information to me,
>>> and I can't find a good way of doing this.
>>>
>>
>>> The following solutions came into my mind:
>>> (most of my users are on Windows, and the programs are written in Python
>>> 2.6)
>>>
>>
>>> 1. mailto:
>>> doesn't work if the the user didn't install a default email client,
>>> or if the user uses a portable email client (that isn't started yet)
>>> Besides this limits the messages to small amounts of data.
>>>
>>
>>> 2.other mail options: smtp
>>> AFAIK such a solution needs smtp authorization, and therefor I've to put
>>> my username and password in the desktop application.
>>>
>> Try reading the documentation for Python's smtplib module.
>>
>> You don't need to provide any password.
>>
>>
>>
>>
>>> 3. http-post
>>> Although post is also limited in size,
>>> I could store information in cookies (don't know yet how), and cookies
>>> are sent parallel to the post message.
>>> On the server site I can use a small php script, that stores the
>>> post-data, cookies and/or send's a (long) email.
>>>
>>
>>> are there better options ?- Hide quoted text -
>>>
>> - Show quoted text -- Hide quoted text -
>>
>> - Show quoted text -
>>
> Try http://code.activestate.com/recipes/442459/
>
Apparently there's something terrible wrong on my system, because I do
need username and password :-(
First, a script that works without username and password.
I guess it works, because the smtp_server is the smtp server of my
provider, and I'm in that domain of my provider,
so it won't work for a random user of my program.
if Test ( 4 ) :
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
body = 'test_body'
subject = 'test_subject'
mail_to = 's.mientki at ru.nl'
mail_from = 'stef.mientki at gmail.com'
msg = MIMEMultipart ( 'alternative' )
msg [ 'To' ] = mail_to
msg [ 'From' ] = mail_from
msg [ 'Subject' ] = subject
part1 = MIMEText ( body, 'plain' )
msg.attach ( part1 )
smtp_server = 'mail.upcmail.nl'
session = smtplib.SMTP ( smtp_server )
session.sendmail ( mail_from, [mail_to], msg.as_string() )
Using smtp on google , works only if I support username and password:
if Test ( 5 ) :
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
body = 'test_body'
subject = 'test_subject'
mail_to = 's.mientki at ru.nl'
mail_from = 'stef.mientki at gmail.com'
msg = MIMEMultipart ( 'alternative' )
msg [ 'To' ] = mail_to
msg [ 'From' ] = mail_from
msg [ 'Subject' ] = subject
part1 = MIMEText ( body, 'plain' )
msg.attach ( part1 )
smtp_server = 'smtp.gmail.com'
session = smtplib.SMTP ( smtp_server, 587 )
session.ehlo ( mail_from )
session.starttls ()
session.ehlo ( mail_from )
session.login (username, password )
session.sendmail ( mail_from, [mail_to], msg.as_string() )
And her a number of different tries with localhost / mail :
if Test ( 6 ) :
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
body = 'test_body'
subject = 'test_subject'
mail_to = 's.mientki at ru.nl'
mail_from = 'stef.mientki at gmail.com'
msg = MIMEMultipart ( 'alternative' )
msg [ 'To' ] = mail_to
msg [ 'From' ] = mail_from
msg [ 'Subject' ] = subject
part1 = MIMEText ( body, 'plain' )
msg.attach ( part1 )
session = smtplib.SMTP ( 'localhost' )
"""
Traceback (most recent call last):
File "D:\Data_Python_25\support\mail_support.py", line 375, in <module>
session = smtplib.SMTP ( smtp_server )
File "P:\Python26\lib\smtplib.py", line 239, in __init__
(code, msg) = self.connect(host, port)
File "P:\Python26\lib\smtplib.py", line 295, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "P:\Python26\lib\smtplib.py", line 273, in _get_socket
return socket.create_connection((port, host), timeout)
File "P:\Python26\lib\socket.py", line 514, in create_connection
raise error, msg
error: [Errno 10061] No connection could be made because the target
machine actively refused it
"""
#session = smtplib.SMTP ( 'localhost', 25 )
#session = smtplib.SMTP ( 'mail', 25 )
session = smtplib.SMTP ( 'mail', 1025 )
"""
Traceback (most recent call last):
File "D:\Data_Python_25\support\mail_support.py", line 377, in <module>
session = smtplib.SMTP ( 'mail', 1025 )
File "P:\Python26\lib\smtplib.py", line 239, in __init__
(code, msg) = self.connect(host, port)
File "P:\Python26\lib\smtplib.py", line 295, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "P:\Python26\lib\smtplib.py", line 273, in _get_socket
return socket.create_connection((port, host), timeout)
File "P:\Python26\lib\socket.py", line 500, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11001] getaddrinfo failed
"""
session.sendmail ( mail_from, [mail_to], msg.as_string() )
What am I doing wrong ?
cheers,
Stef
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100223/99e0ea8d/attachment-0001.html>
More information about the Python-list
mailing list