Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2009 21:50:56

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

smtp

Код с интуита взят…



Офлайн

#2 Янв. 13, 2009 22:08:27

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

smtp

Попробовал другой код:

#-*- coding: cp1251 -*-
import smtplib
from email.MIMEText import MIMEText
me =""
you = "agent3@mail.ru"
text = "klan"
text = unicode(text, 'cp1251').encode("koi8-r")
subj = "swu"

server = "194.67.23.111"
port = 25
user_name = "agent@mail.ru"
user_passwd = "111111"

msg = MIMEText(text, "", "cp1251")
msg['Subject'] = subj
msg['From'] = me
msg['To'] = you

s = smtplib.SMTP(server, port)
s.starttls()
s.login(user_name, user_passwd)
s.sendmail(me, you, msg.as_string())
s.quit()
результат:
c:\resource\email\iterators.py:26: Warning: 'yield' will become a reserved keyword in the future
c:\resource\email\iterators.py:26: Warning: 'yield' will become a reserved keyword in the future
Traceback (most recent call last):
File "C:\private\2000b1a5\default.py", line 81, in menu_action
f()
File "C:\private\2000b1a5\default.py", line 65, in query_and_exec
execfile(script_list[index][1].encode('utf-8'), script_namespace.namespace)
File "c:\python\222.py", line 3, in ?
from email.MIMEText import MIMEText
ImportError: cannot import name MIMEText



Офлайн

#3 Янв. 14, 2009 02:27:24

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

smtp

Вот вариант с интуита:

 #-*- coding: cp1251 -*-
from smtplib import SMTP
fromaddr = "адрер1@маил.pу"
toaddr = "адрес@маил.pу"
message = """From: Lam <%(fromaddr)s>
To: Agent <%(toaddr)s>
Subject: From python
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1251
Content-Transfer-Encoding: 8bit

Aгa thy нax"""
connect = SMTP("smtp.mail.ru")
connect.set_debuglevel(1)
connect.sendmail(fromaddr, toaddr, message % vars())
connect.quit()
результат:
 send: 'ehlo [****************]\r\n'
reply: '501 Syntactically invalid EHLO argument(s)\r\n'
reply: retcode (501); Msg: Syntactically invalid EHLO argument(s)
send: 'helo [****************]\r\n'
reply: '501 Syntactically invalid HELO argument(s)\r\n'
reply: retcode (501); Msg: Syntactically invalid HELO argument(s)
Traceback (most recent call last):
File "C:\private\2000b1a5\default.py", line 81, in menu_action
f()
File "C:\private\2000b1a5\default.py", line 65, in query_and_exec
execfile(script_list[index][1].encode('utf-8'), script_namespace.namespace)
File "c:\python\21.py", line 15, in ?
connect.sendmail(fromaddr, toaddr, message % vars())
File "c:\resource\smtplib.py", line 636, in sendmail
raise SMTPHeloError(code, resp)
SMTPHeloError: (501, 'Syntactically invalid HELO argument(s)')
что и луче я хз…



Офлайн

#4 Янв. 14, 2009 12:06:25

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

smtp

авторизации нет + если у тебя в коде тоже русские адреса….

Офлайн

#5 Янв. 14, 2009 13:45:35

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

smtp

Чет ты сложное сказал, если я правильно понял, то скажу что адреса правильные лог пас не русскими буквами, эт я здесь просто написал, чтоб не палиться адресом)



Офлайн

#6 Янв. 14, 2009 14:56:08

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

smtp

Авторизацию как добавить, я пробовал взять из предыдущего кода, connect.login но чего то не получилось, и на интуите именно такой код, может напишите правильный, я посмотрю и пойму в нем всё…



Офлайн

#7 Янв. 15, 2009 12:50:49

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

smtp

http://docs.python.org/library/smtplib.html#id2
смотри как формируется сообщение

Офлайн

#8 Янв. 16, 2009 13:42:58

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

smtp

вот тебе рабочий пример с авторизацией…

from smtplib import SMTP

fromaddr = "admin@mobile-master.org" # От кого
toaddr = "test@gmail.com" # Кому
subj='test'
text='<b>hello world</b>'
message = """From: <%(fromaddr)s>
To: <%(toaddr)s>
Subject: %(subj)s
MIME-Version: 1.0
Content-Type: text/html; charset=Windows-1251
Content-Transfer-Encoding: 8bit

%(text)s
"""

connect = SMTP('smtp.some-site.org')
connect.login('user','password')
connect.sendmail(fromaddr, toaddr, message % vars())
connect.quit()



Отредактировано (Янв. 16, 2009 13:45:49)

Офлайн

#9 Янв. 16, 2009 16:03:57

Lam
От:
Зарегистрирован: 2008-12-20
Сообщения: 94
Репутация: +  0  -
Профиль   Отправить e-mail  

smtp

Спасибо

 Traceback (most recent call last):
File "C:\private\2000b1a5\default.py", line 81, in menu_action
f()
File "C:\private\2000b1a5\default.py", line 65, in query_and_exec
execfile(script_list[index][1].encode('utf-8'), script_namespace.namespace)
File "c:\python\21.py", line 18, in ?
connect.sendmail(fromaddr, toaddr, message % vars())
File "c:\resource\smtplib.py", line 651, in sendmail
if isinstance(to_addrs, basestring):
NameError: global name 'basestring' is not defined



Отредактировано (Янв. 16, 2009 16:50:06)

Офлайн

#10 Янв. 16, 2009 22:16:34

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

smtp

Исправь в исходнике модуля basestring на string. Или вообще поставь if 1:
Питона на мобиле основан на ядре 2.2, там нет типа basestring



Отредактировано (Янв. 16, 2009 22:18:31)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version