Solución:
import win32com.client as win32
outlook = win32.Dispatch("outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'To address'
mail.Subject="Message subject"
mail.Body = 'Message body'
mail.HTMLBody = '<h2>HTML Message body</h2>' #this field is optional
# To attach a file to the email (optional):
attachment = "Path to the attachment"
mail.Attachments.Add(attachment)
mail.Send()
Utilizará su cuenta de Outlook local para enviar.
Tenga en cuenta que si está intentando hacer algo no mencionado anteriormente, consulte las propiedades / métodos de los documentos COM: https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/mailitem-object-outlook. En el código de arriba, mail
es un objeto MailItem.
Verifique a través de Google, hay muchos ejemplos, vea aquí uno.
Incluido para facilitar la visualización:
import win32com.client
def send_mail_via_com(text, subject, recipient, profilename="Outlook2003"):
s = win32com.client.Dispatch("Mapi.Session")
o = win32com.client.Dispatch("Outlook.Application")
s.Logon(profilename)
Msg = o.CreateItem(0)
Msg.To = recipient
Msg.CC = "moreaddresses here"
Msg.BCC = "address"
Msg.Subject = subject
Msg.Body = text
attachment1 = "Path to attachment no. 1"
attachment2 = "Path to attachment no. 2"
Msg.Attachments.Add(attachment1)
Msg.Attachments.Add(attachment2)
Msg.Send()
Para obtener una solución que utiliza Outlook, consulte la respuesta de TheoretiCAL a continuación.
De lo contrario, use el smtplib que viene con python. Tenga en cuenta que esto requerirá que su cuenta de correo electrónico permita smtp, que no está necesariamente habilitado de forma predeterminada.
SERVER = "smtp.example.com"
FROM = "[email protected]"
TO = ["listOfEmails"] # must be a list
SUBJECT = "Subject"
TEXT = "Your Text"
# Prepare actual message
message = """From: %srnTo: %srnSubject: %srn
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
EDITAR: este ejemplo utiliza dominios reservados como se describe en RFC2606
SERVER = "smtp.example.com"
FROM = "[email protected]"
TO = ["[email protected]"] # must be a list
SUBJECT = "Hello!"
TEXT = "This is a test of emailing through smtp of example.com."
# Prepare actual message
message = """From: %srnTo: %srnSubject: %srn
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.login("MrDoe", "PASSWORD")
server.sendmail(FROM, TO, message)
server.quit()
Para que funcione realmente con gmail, el Sr. Doe deberá ir a la pestaña de opciones en gmail y configurarlo para permitir conexiones smtp.
Tenga en cuenta la adición de la línea de inicio de sesión para autenticarse en el servidor remoto. La versión original no incluye esto, un descuido de mi parte.