Recentemente, usando Python para enviar e-mails automaticamente, existem três etapas principais: fazer login no e-mail, escrever o conteúdo do e-mail e enviar. As bibliotecas usadas são smtplib e e-mail. Você pode instalá-lo diretamente com o pip
Estou usando a caixa de correio QQ, primeiro preciso configurar o serviço POP3 / SMTP da caixa de correio QQ
Lembre-se deste código de autorização, este código de autorização é a senha para fazer login na caixa de correio no script Python, não a senha que você costuma fazer login na caixa de correio
1. Envie uma mensagem de texto comum
#Enviar vários tipos de e-mail de email.mime.multipart import MIMEMultipart msg_from = '[email protected]' # sender's mailbox passwd = 'xxx ' #é o código de autorização acima para = ['[email protected]'] #Receiver mailbox #set mail content # MIMEMultipart class pode colocar qualquer conteúdo msg = MIMEMultipart () conntent = "isto é uma string" #add o conteúdo msg.attach (MIMEText (conntent, 'plain', 'utf-8' )) #Defina o assunto do e-mail msg ['Assunto'] = "Este é o assunto do e-mail" #Sender information msg ['From'] = msg_from #Iniciar o envio # Send via SSL, endereço do servidor e porta s = smtplib.SMTP_SSL ( "smtp.qq.com", 465) # Caixa postal de login s.login (msg_from, passwd) #Comece a enviar s.sendmail (msg_from, para, msg.as_string ()) print ("Correio enviado com sucesso ")
2. Envie e-mails com anexos
import smtplib from email.mime.text import MIMEText #Enviar vários tipos de emails de email.mime.multipart import MIMEMultipart msg_from = '[email protected]' # e-mail do remetente passwd = 'xxxxx' to = ['1508691067 @ qq .com '] #receiver mailbox #set mail content # MIMEMultipart class pode colocar qualquer conteúdo msg = MIMEMultipart () conntent = "isto é uma string" #add the content msg.attach (MIMEText (conntent,' plain ',' utf-8 ')) #Add attachment att1 = MIMEText (open (' result.xlsx ',' rb '). read (),' base64 ',' utf-8 ') #Open attachment att1 [' Content-Type ' ] = 'application / octet-stream' #Setting type is streaming media format att1 ['Content-Disposition'] = 'attachment; filename = result.xlsx' #Setting description information msg.anexar (att1) #Junte-se ao e-mail #Defina o assunto do e-mail msg ['Assunto'] = "Este é o assunto do e-mail" #Sender information msg ['De'] = msg_from #Iniciar o envio # Enviar via SSL, endereço do servidor e porta s = smtplib.SMTP_SSL ("smtp.qq.com", 465) # Caixa postal de login s.login (msg_from, passwd) #Comece a enviar s.sendmail (msg_from, para, msg.as_string ()) print ("Correio enviado com sucesso")
3. Envie anexos com fotos
Da mesma forma, você pode usar o método acima ou enviar uma imagem anexada
import smtplib from email.mime.text import MIMEText #Send vários tipos de emails de email.mime.multipart import MIMEMultipart msg_from = '[email protected]' # e-mail do remetente passwd = 'xxxxx' to = ['1508691067 @ qq .com '] #receiver mailbox #set mail content # MIMEMultipart class pode colocar qualquer conteúdo msg = MIMEMultipart () conntent = "isto é uma string" #add the content msg.attach (MIMEText (conntent,' plain ',' utf-8 ')) #Add attachment att1 = MIMEText (open (' result.xlsx ',' rb '). read (),' base64 ',' utf-8 ') #Open attachment att1 [' Content-Type ' ] = 'application / octet-stream' #Set type é o formato de streaming media att1 ['Content-Disposition'] = 'attach; filename = result.xlsx' #Set description information att2 = MIMEText (open ('1.jpg', 'rb'). Read (), 'base64', 'utf-8') att2 ['Content-Type'] = 'application / octet-stream' #Defina o tipo para o formato de streaming media att2 ['Content-Disposition'] = 'attachment; filename = 1.jpg' #Defina as informações de descrição msg.attach (att1 ) #Adicione ao e-mail msg.attach (att2) #Defina o assunto do e- mail msg ['Assunto'] = "Este é o assunto do e-mail" #Sender information msg ['De'] = msg_from #Iniciar o envio # Enviar via SSL, Endereço e porta do servidor s = smtplib.SMTP_SSL ("smtp.qq.com", 465) # Caixa de correio de login s.login (msg_from, passwd) #Iniciar o envio de s.sendmail (msg_from, para, msg.as_string ()) print ( "Correio enviado com sucesso")
4. Envie e-mail em formato html
import smtplib from email.mime.text import MIMEText #Send vários tipos de emails de email.mime.multipart import MIMEMultipart import datetime msg_from = '[email protected]' # e-mail do remetente passwd = 'xxxxxx' to = ['1508691067 @ qq.com '] # 受 方 邮 #Defina o conteúdo do e- mail # A classe MIMEMultipart pode colocar qualquer conteúdo msg = MIMEMultipart () # conntent = "Isto é uma string" # #put o conteúdo em # msg.attach (MIMEText (conntent, 'simples', 'utf-8')) #Adicionar anexo att1 = MIMEText (open ('result.xlsx', 'rb'). read (), 'base64', 'utf-8') #Abrir anexo att1 [ 'Content-Type'] = 'application / octet-stream' #Defina o tipo como o formato de streaming media att1 ['Content-Disposition'] = 'anexo; nome do arquivo = resultado.xlsx '#Set description information xlsx ' #Set description information att2 = MIMEText (open (' 1.jpg ',' rb '). read (),' base64 ',' utf-8 ') <blockquote><p> <strong> O conteúdo a seguir é a ata desta reunião, verifique! </strong></p> </blockquote> <blockquote><p> <strong> Orador: {fayanren} </strong> </p> </blockquote> <blockquote><p> <strong> Moderador: {zhuchiren} </strong> </p> </blockquote> <p align = "right"> {mytime} </p> <body> <html> '' '.format (fayanren = fayanren, zhuchiren = zhuchiren, mytime = mytime) msg.attach (MIMEText (content , 'html', 'utf-8')) #Defina o assunto do e- mail msg ['Assunto'] = "Este é o assunto do e-mail" #Sender information msg ['De'] = msg_from #Iniciar o envio # Enviar via SSL, Endereço do servidor e porta s = smtplib.SMTP_SSL ("smtp.qq.com", 465) # Caixa de correio de login s.login (msg_from,passwd) #Comece a enviar s.sendmail (msg_from, para, msg.as_string ()) print ("Correio enviado com sucesso")
O texto acima é todo o conteúdo deste artigo, espero que seja útil para o estudo de todos e espero que você possa apoiá-lo.