我想在synology NAS上制作一个python脚本。备份完成后,脚本将发送一封邮件。我不知道为什么在pycharm的windows上工作的脚本不能在synology上工作。。。它的问题是上下文=context。它的Synology NAS与不稳定的python和python模块。Python看到所有的文件,但他不能发送邮件
message = MIMEMultipart("alternative")
message["Subject"] = "Backup zrobiony dnia: " + str(datetime.now())
message["From"] = sender_email
message["To"] = receiver_email
# Create the plain-text and HTML version of your message
text = """\
Hi,
How are you?"""
def modification_date(filename):
t = os.path.getmtime(filename)
return datetime.fromtimestamp(t)
html = """\
<html lang="PL">
<head>
<style>table,td,th{border:2px solid black;}</style>
</head>
<body>
<h1 style="text-align: center">Witam tu serwer Synology z firmy IdeaLogic</h1>
<p style="text-align: center; color: #FF7B24; font-weight:bold">Backup został wykonany</p>
<table style="text-align:center">
<tr><th>Nr</th><th>Nazwa folderu</th><th>Data backupu</th><th>Czzas od ostatniego backupu</th></tr>
<tr><td>1</td><td>VM_DEV_JIRA_NS</td><td>""" +str(modification_date('/volume1/esxi_backup/VM_DEV_JIRA_NS'))+"""</td>"""+"""<td>"""+(str(datetime.now() - modification_date(file)))+ """</td></tr>
<tr><td>2</td><td>DB.OROOXLAB</td><td>""" +str(modification_date('/volume1/esxi_backup/DB.OROOXLAB'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/DB.OROOXLAB'))+ """</td></tr>
<tr><td>3</td><td>WinOraDB</td><td>""" +str(modification_date('/volume1/esxi_backup/WinOraDB'))+"""</td><td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/WinOraDB'))+"""</td></tr>
<tr><td>4</td><td>WV_DEV_REPO</td><td>""" +str(modification_date('/volume1/esxi_backup/WV_DEV_REPO'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/WV_DEV_REPO'))+"""</td></tr>
<tr><td>5</td><td>VM_DEV_TOOLS</td><td>""" +str(modification_date('/volume1/esxi_backup/VM_DEV_TOOLS'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/VM_DEV_TOOLS'))+"""</td></tr>
<tr><td>6</td><td>SSN_calculator</td><td>""" +str(modification_date('/volume1/esxi_backup/SSN_calculator'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/SSN_calculator'))+"""</td></tr>
<tr><td>7</td><td>Firmeoo</td><td>""" +str(modification_date('/volume1/esxi_backup/Firmeoo'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/Firmeoo'))+"""</td></tr>
<tr><td>8</td><td>ISO</td><td>""" +str(modification_date('/volume1/esxi_backup/ISO'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/ISO'))+"""</td></tr>
<tr><td>9</td><td>AD-VPN</td><td>""" +str(modification_date('/volume1/esxi_backup/AD-VPN'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/AD-VPN'))+"""</td></tr>
<tr><td>10</td><td>GitLab</td><td>""" +str(modification_date('/volume1/esxi_backup/GitLab'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/GitLab'))+"""</td></tr>
<tr><td>11</td><td>VM_DEV_JENKIS</td><td>""" +str(modification_date('/volume1/esxi_backup/VM_DEV_JENKINS'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/VM_DEV_JENKINS'))+"""</td></tr>
<tr><td>12</td><td>OLD</td><td>""" +str(modification_date('/volume1/esxi_backup/OLD'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/OLD'))+"""</td></tr>
<tr><td>13</td><td>RedmineDebianOS</td><td>""" +str(modification_date('/volume1/esxi_backup/RedmineDebianOS'))+"""</td>"""+"""<td>"""+str(datetime.now() - modification_date('/volume1/esxi_backup/RedmineDebianOS'))+"""</td></tr>
</table>
</body>
</html>"""
# Turn these into plain/html MIMEText objects
part1 = MIMEText(text, "plain")
part2 = MIMEText(html, "html")
# Add HTML/plain-text parts to MIMEMultipart message
# The email client will try to render the last part first
message.attach(part1)
message.attach(part2)
# Create secure connection with server and send email
context = ssl.create_default_context()
server = smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context)
server.login(sender_email, password)
server.sendmail(
sender_email, receiver_email, message.as_string()
)
czas = (os.stat(file)[-2])
print('Wysłano maila')
liczba_petli = int(liczba_petli)
liczba_petli = liczba_petli + 1
continue
在python3.3中,
context
参数是新的:https://docs.python.org/3/library/smtplib.html#smtplib.SMTP_SSL如果运行的python版本错误,则会出现此错误。在
你在打电话
根据文档,该函数还有另一个签名:
^{2}$最后一个参数(
context=context
)看起来像一个带有默认值的参数定义。你不能调用那样的函数。只需省略上下文并调用:这是官方文件的链接:https://docs.python.org/2/library/smtplib.html#smtplib.SMTP_SSL
相关问题 更多 >
编程相关推荐