SORU
15 EYLÜL 2008, PAZARTESİ


Python SMTP kullanarak posta gönderme

Aşağıdaki yöntemi Python SMTP kullanarak mail göndermek için kullanıyorum. Kullanmak için doğru yöntemi mi yoksa kaçırdığım ayrıntılar var mı ?

from smtplib import SMTP
import datetime

debuglevel = 0

smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('YOUR.MAIL.SERVER', 26)
smtp.login('USERNAME@DOMAIN', 'PASSWORD')

from_addr = "John Doe <john@doe.net>"
to_addr = "foo@bar.com"

subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )

message_text = "Hello\nThis is a mail from your server\n\nBye\n"

msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s" 
        % ( from_addr, to_addr, subj, date, message_text )

smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()

CEVAP
15 EYLÜL 2008, PAZARTESİ


Kullandığım script oldukça benzer; ben burada e-posta kullanmak için nasıl bir örnek olarak post*. modüller MIME mesajları oluşturmak için; bu komut kolayca resim vs eklemek için modifiye edilebilir.

Benim ISS üzerinde tarih saat başlık eklemek için güveniyorum.

Benim ISS smtp bana güvenli bir bağlantı, ben ssmtplib modülü (http://www1.cs.columbia.edu/~db2501/ssmtplib.py indirilebilir) güveniyor posta göndermek için kullanmak gerekir

Komut olarak, kullanıcı adı ve parola (aşağıda kukla değerler), SMTP sunucusu kimlik doğrulaması için kullanılan, kaynak düz metin olarak. Bu bir güvenlik zaafı; ama en iyi alternatif ne kadar dikkatli ihtiyacın üzerinde (ister misin?) bağlıdır bu koruma konusunda.

=======================================

#! /usr/local/bin/python


SMTPserver = 'smtp.att.yahoo.com'
sender =     'me@my_email_domain.net'
destination = ['recipient@her_email_domain.com']

USERNAME = "USER_NAME_FOR_INTERNET_SERVICE_PROVIDER"
PASSWORD = "PASSWORD_INTERNET_SERVICE_PROVIDER"

# typical values for text_subtype are plain, html, xml
text_subtype = 'plain'


content="""\
Test message
"""

subject="Sent from Python"

import sys
import os
import re

from smtplib import SMTP_SSL as SMTP       # this invokes the secure SMTP protocol (port 465, uses SSL)
# from smtplib import SMTP                  # use this for standard SMTP protocol   (port 25, no encryption)
from email.MIMEText import MIMEText

try:
    msg = MIMEText(content, text_subtype)
    msg['Subject']=       subject
    msg['From']   = sender # some SMTP servers will do this automatically, not all

    conn = SMTP(SMTPserver)
    conn.set_debuglevel(False)
    conn.login(USERNAME, PASSWORD)
    try:
        conn.sendmail(sender, destination, msg.as_string())
    finally:
        conn.close()

except Exception, exc:
    sys.exit( "mail failed; %s" % str(exc) ) # give a error message

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • adrianisen

    adrianisen

    25 Kasım 2009
  • Moodle

    Moodle

    11 Mayıs 2010
  • sdasmarchives

    sdasmarchive

    2 HAZİRAN 2010