ich habe diesen Code im Internet gefunden, mit dem man Mails per python versenden soll... Man muss angeblich nur noch seine Daten eintragen, das wären, gesendete Nachricht, Absender, Empfänger und die smtp domain...
Hier der Code:
Code: Alles auswählen
#!/usr/bin/python
# Sends all files per Mail
# Example usage: python sendMail.py file1.txt, file2.txt ...
import time
import sys
import smtplib
import os
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import formatdate
from email import encoders
class SendMail(object):
def __init__(self):
self.mailtoadress = 'empfänger@gmail.com'
self.mailfromadress = 'absender@absender.com'
self.username = 'usrname'
self.password = 'passwd'
Zeit = (time.strftime("%d.%m.%Y %H:%M:%S"))
MessageText = 'Hallo,' + '\n'
MessageText += 'dies ist der Logbericht' + '\n'
MessageText += 'vom %s' % Zeit + '\n'
def send(self, files):
# Gather information, prepare mail
to = self.mailtoadress
From = self.mailfromadress
# Subject contains preview of filenames
if len(files) <= 3:
subjAdd = ','.join(files)
if len(files) > 3:
subjAdd = ','.join(files[:3]) + '...'
subject = 'Dateiupload: ' + subjAdd
msg = self.prepareMail(From, to, subject, files)
# Connect to server and send mail
#server = smtplib.SMTP(self.smtpserver)
server = smtplib.SMTP("192.168.178.xx", 465)
server.ehlo() # Has something to do with sending information
server.ehlo() # To make starttls work
server.login(self.username, self.password)
failed = server.sendmail(From, to, msg.as_string())
server.quit()
def prepareMail(self, From, to, subject, attachments):
msg = MIMEMultipart()
msg['From'] = From
msg['To'] = to
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
# The Body message
msg.attach(MIMEText(SendMail.MessageText))
for file in attachments:
# We could check for mimetypes here, but I'm too lazy
part = MIMEBase('application', "octet-stream")
part.set_payload(open(file, "rb").read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
msg.attach(part)
# Delete created Tar
return msg
if __name__ == '__main__':
mail = SendMail()
# Send all files included in command line arguments
mail.send(sys.argv[1:])
Mit Port 25 oder 587 geht es nicht, es muss 465 sein...
die 192.168.178.xx ist mein privater Mailserver...