poslat mail s prilohou cez python

Programovacie jazyky, rady, poradňa...
woooody
Amateur
Amateur
Príspevky: 11
Registrovaný: 12 jún 2010, 11:40

poslat mail s prilohou cez python

Príspevok od používateľa woooody »

nazdar, chcel by som poslat email s prilohou cez python ale stale mi vypisuje problemove hlasky, na odoslanie emailu funguje tento jednoduchy skript :

Kód: Vybrať všetko

import smtplib

fromaddr = '[email protected]'
toaddrs = '[email protected]'
msg = 'hello'

username = 'odosielatel'
password = '12345'

server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
hladal som v googli skript aj pre prilohu a nasiel som toto :

Kód: Vybrať všetko

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os

def sendMail(to, subject, text, files=[],server="localhost"):
    assert type(to)==list
    assert type(files)==list
    fro = "Expediteur <[email protected]>"

    msg = MIMEMultipart()
    msg['From'] = '[email protected]'
    msg['To'] = '[email protected]'
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach( MIMEText(text) )

    for file in files:
        part = MIMEBase('application', "octet-stream")
        part.set_payload( open(file,"rb").read() )
        Encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"'
                       % os.path.basename(file))
        msg.attach(part)

    smtp = smtplib.SMTP('smtp.gmail.com:587')
    smtp.sendmail(fro, to, msg.as_string() )
    smtp.close()


sendMail(
        ["[email protected]"],
        "hello","cheers",
        ["/home/ip/Plocha/log.txt"]
    )
a vypisuje mi toto :
Traceback (most recent call last):
File "/media/1CE84E98E84E7056/download/programming/python/mail_priloha.py", line 38, in <module>
["/home/ip/Plocha/log.txt"]
File "/media/1CE84E98E84E7056/download/programming/python/mail_priloha.py", line 31, in sendMail
smtp.sendmail(fro, to, msg.as_string() )
File "/usr/lib/python2.6/smtplib.py", line 698, in sendmail
raise SMTPSenderRefused(code, resp, from_addr)
smtplib.SMTPSenderRefused: (530, '5.7.0 Must issue a STARTTLS command first. f31sm2472278fkf.18', 'Expediteur <[email protected]>')

vie niekto kde je chyba a ako ju opravit ? dakujem
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: poslat mail s prilohou cez python

Príspevok od používateľa weroro »

zdrojaky davame do CODE
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: poslat mail s prilohou cez python

Príspevok od používateľa audiotrack »

v tej výnimke ti píše že musíš použiť najprv STARTTLS. Skús teda takto: server.starttls(True) lebo očividne bez parametra to nejak ignoruje

... a nabudúce dávaj zdrojáky do code, lebo ti to zmažem a nebudem ti to upravovať ako teraz
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: poslat mail s prilohou cez python

Príspevok od používateľa chrono »

V tom druhom skripte mu volanie starttls() kompletne chýba (a nie je tam v podstate ani prihlasovanie) a tá chybová hláška je asi pre ten druhý skript.
woooody
Amateur
Amateur
Príspevky: 11
Registrovaný: 12 jún 2010, 11:40

Re: poslat mail s prilohou cez python

Príspevok od používateľa woooody »

audiotrack napísal:v tej výnimke ti píše že musíš použiť najprv STARTTLS. Skús teda takto: server.starttls(True) lebo očividne bez parametra to nejak ignoruje

... a nabudúce dávaj zdrojáky do code, lebo ti to zmažem a nebudem ti to upravovať ako teraz
ok budem davat do code pardon, ale neviem ako sa to robi. napisem code a za tym kod programu ? dik :D
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Re: poslat mail s prilohou cez python

Príspevok od používateľa reDo »

kliknes na code a vytvori to, a hned ti aj nastavi kurzor tam kde ma byt kod takze staci stlacit potom prilepit a je to ;)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: poslat mail s prilohou cez python

Príspevok od používateľa weroro »

alebo staci oznacit text ktory chce dat do CODE a potom ked bude oznaceny staci kliknut na tlacitko CODE
Napísať odpoveď