Saltar al contenido

¿Enviar correo electrónico de Outlook a través de Python?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *