2013-05-05 36 views

Trả lời

11

Có; đây là mã:

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' 
+4

server.starttls() phải được thêm trước khi kết hợp với máy chủ.login nếu không nó sẽ ném một ngoại lệ. – user6972

+0

'Tiện ích mở rộng SMTP AUTH không được máy chủ hỗ trợ.' – Volatil3

2

Để hỗ trợ các ký tự không phải ascii; bạn có thể sử dụng 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

Tôi đã bỏ qua đầu (một thời gian ngắn) về việc sử dụng máy chủ SMTP của yahoo. 465 sẽ không hoạt động. Tôi quyết định đi tuyến đường TLS qua cổng 587 và tôi có thể xác thực và gửi email.

import smtplib 
from email.mime.text import MIMEText 
SMTP_SERVER = "smtp.mail.yahoo.com" 
SMTP_PORT = 587 
SMTP_USERNAME = "username" 
SMTP_PASSWORD = "password" 
EMAIL_FROM = "[email protected]" 
EMAIL_TO = "[email protected]" 
EMAIL_SUBJECT = "REMINDER:" 
co_msg = """ 
Hello, [username]! Just wanted to send a friendly appointment 
reminder for your appointment: 
[Company] 
Where: [companyAddress] 
Time: [appointmentTime] 
Company URL: [companyUrl] 
Change appointment?? Add Service?? 
change notification preference (text msg/email) 
""" 
def send_email(): 
    msg = MIMEText(co_msg) 
    msg['Subject'] = EMAIL_SUBJECT + "Company - Service at appointmentTime" 
    msg['From'] = EMAIL_FROM 
    msg['To'] = EMAIL_TO 
    debuglevel = True 
    mail = smtplib.SMTP(SMTP_SERVER, SMTP_PORT) 
    mail.set_debuglevel(debuglevel) 
    mail.starttls() 
    mail.login(SMTP_USERNAME, SMTP_PASSWORD) 
    mail.sendmail(EMAIL_FROM, EMAIL_TO, msg.as_string()) 
    mail.quit() 

if __name__=='__main__': 
send_email() 
Các vấn đề liên quan