Mail

From wiki
Jump to navigation Jump to search

Sending mail with sendmail

sendmail -t < <messagefile>
Send the email as in <messagefile>

The email headers are in <messagefile>. That should look like:

From: me@mydomain.tld
To: user@domain.tld
Subject: Subject of your mail
email text

Python email sender found in [python docs]

import smtplib
from email import encoders
from email.message import Message
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


def main():
    attachement = fileapath
    mailto = you@domain.tld
    mailsubject = 'What this is about'
    mailtext = "Hi,\n\nI'd like to send you an email.\n\nBest Regards\n\nMe."
    sendmail(mailto,mailsubject,mailtext,attachment)
    return


def sendmail(mailto,mailsubject,mailtext,attachment):
    filename = attachment.split('/')[-1]
    outer = MIMEMultipart()
    outer['Subject'] = mailsubject
    outer['To'] = mailto
    msg = MIMEText(mailtext,_subtype='plain')
    outer.attach(msg)
    ctype = 'application/octet-stream'
    maintype, subtype = ctype.split('/', 1)
    fp = open(attachment, 'rb')
    msg = MIMEBase(maintype, subtype)
    msg.set_payload(fp.read())
    fp.close()
    # Encode the payload using Base64
    encoders.encode_base64(msg)
    # Set the filename parameter
    msg.add_header('Content-Disposition', 'attachment', filename=filename)
    outer.attach(msg)
    composed = outer.as_string()
    s = smtplib.SMTP('localhost')
    s.sendmail('', mailto , composed)
    s.quit()
    return

main()