Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Para enviar um email com uma imagem usando Python, você pode utilizar a biblioteca smtplib
para enviar o email e email.mime
para criar as partes do email, incluindo a parte da imagem. Aqui está um exemplo básico de como você pode fazer isso usando a biblioteca smtplib
e email.mime
:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
# Configurações do email
email_de = 'seu_email@gmail.com'
email_para = 'destinatario@email.com'
senha = 'sua_senha'
# Criar o corpo do email
mensagem = MIMEMultipart()
mensagem['From'] = email_de
mensagem['To'] = email_para
mensagem['Subject'] = 'Assunto do Email'
# Adicionar corpo do email (pode ser texto ou HTML)
corpo_email = MIMEText('Corpo do email. Aqui está a imagem:')
mensagem.attach(corpo_email)
# Adicionar imagem ao email
with open('caminho_da_imagem.jpg', 'rb') as arquivo_imagem:
imagem = MIMEImage(arquivo_imagem.read())
mensagem.attach(imagem)
# Configurar o servidor SMTP
servidor_smtp = smtplib.SMTP('smtp.gmail.com', 587)
servidor_smtp.starttls()
servidor_smtp.login(email_de, senha)
# Enviar email
servidor_smtp.sendmail(email_de, email_para, mensagem.as_string())
# Encerrar a conexão
servidor_smtp.quit()
Para adicionar uma imagem ao corpo de um e-mail utilizando Python e integrando com o Microsoft Outlook (como é o caso do seu script), você precisa garantir que a imagem seja embutida corretamente no e-mail. O trecho de código que você compartilhou parece estar configurando a mensagem para utilizar HTML, mas não está configurando corretamente o caminho da imagem para que ela seja embutida e visualizada pelo destinatário ao abrir o e-mail.
Você precisa referenciar corretamente o arquivo da imagem no HTML. Se a imagem é um arquivo local, você terá que ajustar o código para anexar a imagem ao e-mail e referenciá-la usando o CID (Content-ID). Aqui está como fazer:
import win32com.client as win32
# Supondo que contatos_df é um DataFrame com as informações necessárias
for i, chamados in enumerate(contatos_df["incidente"]):
data_agendamento = contatos_df.loc[i, 'data'].strftime("%d/%m/%Y")
o = win32.Dispatch("Outlook.Application")
mail = o.CreateItem(0)
# Configurando a conta de e-mail do remetente
mail._oleobj_.Invoke(*(64209, 0, 8, 0, o.Session.Accounts[1]))
mail.To = f"{contatos_df.loc[i, 'email']}"
mail.Subject = f"Agendamento Dell - DPS {contatos_df.loc[i, 'dps']}| {contatos_df.loc[i, 'company']}| SRMS - {contatos_df.loc[i, 'incidente']}"
# Caminho para a imagem que você deseja embutir
image_path = 'caminho_para_a_imagem/DELL.PNG'
# Anexando a imagem ao e-mail
attachment = mail.Attachments.Add(image_path)
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyId1")
# HTML Body com a referência à imagem usando CID
mail.HTMLBody = f"""
<p>Prezado(a),</p>
<p>Segue informações do seu agendamento:</p>
<img src="cid:MyId1"><br>
<p>Data de Agendamento: {data_agendamento}</p>
"""
mail.Send()
print("Email enviado")
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.