Mam konto yahoo
. Czy istnieje kod Pythona do wysyłania wiadomości e-mail z mojego konta?Wysyłanie wiadomości e-mail za pomocą konta Yahoo w pythonie
6
A
Odpowiedz
11
Tak; tutaj jest kod:
import smtplib
fromMy = '[email protected]' # fun-fact: from is a keyword in python, you can't use it as variable, did abyone check if this code even works?
to = '[email protected]'
subj='TheSubject'
date='2/1/2010'
message_text='Hello Or any thing you want to send'
msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s" % (fromMy, to, subj, date, message_text)
username = str('[email protected]')
password = str('yourPassWord')
try :
server = smtplib.SMTP("smtp.mail.yahoo.com",587)
server.login(username,password)
server.sendmail(fromMy, to,msg)
server.quit()
print 'ok the email has sent '
except :
print 'can\'t send the Email'
2
Do obsługi znaków spoza zestawu ASCII; można użyć email
package:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from email.header import Header
from email.mime.text import MIMEText
from getpass import getpass
from smtplib import SMTP_SSL
# provide credentials
login = '[email protected]'
password = getpass('Password for "%s": ' % login)
# create message
msg = MIMEText('message body…', 'plain', 'utf-8')
msg['Subject'] = Header('subject…', 'utf-8')
msg['From'] = login
msg['To'] = ', '.join([login, ])
# send it
s = SMTP_SSL('smtp.mail.yahoo.com', timeout=10) #NOTE: no server cert. check
s.set_debuglevel(0)
try:
s.login(login, password)
s.sendmail(msg['From'], msg['To'], msg.as_string())
finally:
s.quit()
5
I udręczone głowę (krótko) w zakresie za pomocą serwera SMTP Yahoo. 465 po prostu by nie działało. Zdecydowałem się przejść na trasę TLS przez port 587 i udało mi się uwierzytelnić i wysłać e-mail.
server.starttls() należy dodać przed wierszem z server.login, w przeciwnym razie wygeneruje wyjątek. – user6972
'Rozszerzenie SMTP AUTH nie obsługiwane przez serwer." – Volatil3