Como adicionar uma imagem no email com python

Python OO
for i, chamados in enumerate(contatos_df["incidente"]):
    data_agendamento = contatos_df.loc[i,'data'].strftime("%d/%m/%Y")
    o = win32.Dispatch("Outlook.application")
    Msg = o.createitem(0)
    Msg._oleobj_.Invoke(*(64209, 0, 8, 0, o.Session.Accounts[1]))
    Msg.To = f"{contatos_df.loc[ i,'email']}" # email
    Msg.Subject = f"Agendamento Dell - DPS {contatos_df.loc[i,'dps']}| {contatos_df.loc[i,'company']}| SRMS - {contatos_df.loc[i,'incidente']}"
    Msg.HTMLBody = """ <img src ='DELL.PNG'>"""
    Msg.Send()
    print("email enviado")
Foto de Mario G.
Mario perguntou há 1 ano

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
4 respostas
1
votos
1 usuário votou nessa resposta como útil.
Professor Rafael P.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Melhor resposta
Essa foi a melhor resposta, escolhida pelo autor da dúvida
Bem, não sei como funciona a API dessa biblioteca. Mas em HTML, você consegue colocar uma imagem em base64, através da tag Segue link para maiores informações: https://www.w3docs.com/snippets/html/how-to-display-base64-images-in-html.html#:~:text=Images%20encoded%20with%20Base64%20can,from%20making%20additional%20HTTP%20requests.

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

1
votos
1 usuário votou nessa resposta como útil.
Professor Johny L.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
é em attachments, veja a documentação dos comandos
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Jhonni S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 3 meses

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()

0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Amador R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 semana

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")

Está precisando de Aulas Particulares?

Aqui no Profes você encontra os melhores professores particulares, presenciais ou online, para aulas de qualquer assunto!

Professores particulares de Python

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 100 / h
Rafael P.
Campo Grande / MS
Rafael P.
4,8 (30 avaliações)
Horas de aulas particulares ministradas 3 horas de aula
Tarefas resolvidas 40 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Python - Geral Programação em Python Básico Python - Programação Orientada a Objetos
Graduação: Engenharia de Computação (Instituto Militar de engenharia (IME))
Formado em engenharia de computação pelo instituto militar de engenharia em 2016. Atuando desde então em ti e segurança da informação.
R$ 60 / h
César D.
Mogi Guaçu / SP
César D.
4,9 (811 avaliações)
Horas de aulas particulares ministradas 87 horas de aula
Tarefas resolvidas 995 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Programação em Python NumPy Python - Geral Programação em Python Básico
Graduação: Matemática Aplicada e Computacional (Universidade Estadual de Campinas (UNICAMP))
Faça aulas de matemática, computação e programação em c, c++, java e python.
R$ 120 / h
Johny L.
Fortaleza / CE
Johny L.
4,3 (36 avaliações)
Horas de aulas particulares ministradas 94 horas de aula
Tarefas resolvidas 29 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
Programação em Python NumPy Python - OO Python - Geral
Graduação: Engenharia Civil (IFCE - Campus Fortaleza)
Professor da UFC - Aulas de estatística práticas e aplicadas ao mercado de trabalho além de acadêmico