如何用python中的继承类发送电子邮件?

2024-10-06 12:15:10 发布

您现在位置:Python中文网/ 问答频道 /正文

import time
class mesagerie(object):
    """mesage for e-mail"""
    def __init__(self, s="Error!"):
        global m
        localtime = time.asctime( time.localtime(time.time()) )

        mesage = localtime, m.group(0)
        try:
            print mesage
        except(),e:
            print s
class email(mesagerie):
    """e-mail"""
    def pas5(self):
        expeditor = 'allex.alexa11@gmail.com'
        receiver = 'nita_alexa11@yahoo.ro'
        username = 'root'
        password = 'skgaming'

        try:
                ob1 = smtplib.SMTP('srv1.cutesouthchat.com:9267')
                ob1.starttls()
                ob1.login(username, password)
                ob1.sendmail(expeditor, receiver, mesage)
                print "Message has been sent"
        except(),e:
                print "Message has not been sent"
                print e


x=mesagerie()
y=email()
y.pas5()

我想在头等舱做一张支票,然后在第二舱邮寄给收件人。你知道吗

我得到这个错误:

ob1.sendmail(expeditor, receiver, mesage)

NameError: global name 'mesage' is not defined

类电子邮件不是继承类mesagerie及其所有属性吗?你知道吗


Tags: selftimedefmailglobalclassprintreceiver
1条回答
网友
1楼 · 发布于 2024-10-06 12:15:10

您似乎混淆了函数/方法、属性和全局变量。你知道吗

每个类都有属性,这些属性由子类继承。如果这些属性是函数,则称为methods。你知道吗

但是,变量message根本不是类的属性。它是mesagerie类构造函数中的普通局部变量。一个函数中的局部变量不能在另一个函数中引用。您需要将message分配给一个属性。你知道吗

更正代码:

class mesagerie(object):
    """message for e-mail"""
    def __init__(self, s="Error!"):
        global m
        localtime = time.asctime( time.localtime(time.time()) )

        message = self.message = localtime, m.group(0)
        try:
            print mesasge
        except(),e:
            print s
class email(mesagerie):
    """e-mail"""
    def pas5(self):
        expeditor = 'allex.alexa11@gmail.com'
        receiver = 'nita_alexa11@yahoo.ro'
        username = 'root'
        password = 'skgaming'
        try:
            ob1 = smtplib.SMTP('srv1.cutesouthchat.com:9267')
            ob1.starttls()
            ob1.login(username, password)
            ob1.sendmail(expeditor, receiver, self.message)
            print "Message has been sent"
    except(),e:
            print "Message has not been sent"
            print e

相关问题 更多 >