Отправка писем в Python на cPanel - PullRequest
0 голосов
/ 03 марта 2019

Я создаю веб-сайт, который предоставляет службу электронной почты, но функция входа в систему у меня не запускается.Я достаточно устраняю неполадки, чтобы выяснить, что все остальное работает до этого момента, и только в этот момент код перестает работать.Код в той форме, в которой он находится сейчас, запускается на моей машине, и только когда я помещаю его в cPanel, он перестает функционировать.Что здесь происходит?

Следует отметить, что я запускаю python в cgi-bin на cPanel.Предыдущий питон сработал, проблема возникает только на сервере.

#!/usr/bin/python3

print("Content-type: text/html\n\n")

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

class Mailer(object):

    def __init__(self, address, password):
    self.address = address
    self.password = password
    self.signature = None
    self._refresh_connection()

def __enter__(self):
    return self

def __exit__(self, errtype, errinst, traceback):
    self.close()

def _refresh_connection(self):
    self.server = smtplib.SMTP('smtp.gmail.com', port=587)
    self.server.ehlo()
    self.server.starttls()
    self.server.login(self.address, self.password) #This line is where it ceases to run

def close(self):
    self.server.close()

def add_signature(self, data, type='plain'):
    self.signature = MIMEText(data, type)

def make_email(self, to, msg, subject=None, type='plain'):
    mail = MIMEMultipart()
    mail["To"] = to
    mail['From'] = self.address
    if subject is not None:
        mail['Subject'] = subject
    mail.attach(MIMEText(msg, type))
    if self.signature is not None:
        mail.attach(self.signature)
    return mail

def send(self, to, msg, subject=None, type='plain'):
    print('sending emails')
    print('to:', to, ', from:', self.address)
    email = self.make_email(to, msg, subject, type)
    self.server.sendmail(self.address, to, email.as_string())
myEmail = Mailer('myEmail','myPassword')
myEmail.send('recipient','This is my message')
...