Python, email temperature

Dave Angel d at davea.name
Sun Dec 23 15:34:38 EST 2012


On 12/23/2012 08:46 AM, KarlE wrote:
> On Saturday, December 22, 2012 9:36:41 PM UTC+1, KarlE wrote:
>> Hi!
>>
>>
>>
>> Im totally new to Python, and im using it on my Raspberry pi. I found a program that sends an email, and one that checks the temperature of my CPU, but i cant seem to combine the to into the funktion that i want, sending me the CPU temp via Email.
>>
>>
>>
>> The two programs work very well on their own, but this doesnt work.
>>
>>
>>
>> this works: server.sendmail(fromaddr, toaddrs, msg)  
>>
>> but this doesnt: server.sendmail(fromaddr, toaddrs, cpu_temperature)
>>
>>
>>
>> despite the command "print cputemp" working in the same program. 
>>
>>
>>
>> When i run the program i get the error:  
>>
>>
>>
>> Traceback (most recent call last):
>>
>>   File "sendcpu.py", line 36, in <module>
>>
>>     msg = cpu_temperature
>>
>> NameError: name 'cpu_temperature' is not defined
>>
>>
>>
>> Does anyone know why the program claims that cpu_temperature isnt defined, when it is?
>>
>>
>>
>> Thanx!
>>
>>
>>
>> //Alexander
> Ok, im back with a little more understanding of python! I got the program working, every time my Raspberry Pi reboots i get an Email containing information about the boot and the CPU temperature.
>
> The issue now is that there seems to be a limitation to how long the message string can be, about 32 letters. The code below works well, but when i add more letters to the string "ord" and pass about 32 in size the email comes through emptpy...

I don't know the email protocols that well, but I can tell you a Python
string isn't limited in size to any small value.  Maybe a few hundred
million characters, but i haven't tried beyond that.

i suspect the limit you're hitting is the limit of subject size in an
email protocol.  In particular, the 3rd argument to sendmail() needs to
have newlines in a particular format before you get to the body of the
email.  The body can be quite large, but you probably are required to
have the appropriate headers first.

When you send a short message, does it all come out as a subject line?

It would be good to look up the docs on smtplib, but if I had to just do
some blind testing, I'd try first adding a newline pair, changing the
line to something like:

ord = "Subject: Pi Boot, CPU: \r\n" + str(cpu_temperature) + WhateverOtherStuffYouWantedToTry






-- 

DaveA




More information about the Python-list mailing list