added scripts for testing smtp and imap
This commit is contained in:
@@ -156,4 +156,5 @@ textarea {
|
|||||||
/* On hover, the dropdown links will turn red */
|
/* On hover, the dropdown links will turn red */
|
||||||
.dropdown-menu li a:hover {
|
.dropdown-menu li a:hover {
|
||||||
background-color: red !important;
|
background-color: red !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
50
email_avnes_purge.py
Normal file
50
email_avnes_purge.py
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# -*- coding: utf8 -*-
|
||||||
|
#
|
||||||
|
# Compter les emails BEFORE DATE
|
||||||
|
#
|
||||||
|
|
||||||
|
from pprint import pprint
|
||||||
|
import datetime
|
||||||
|
import imaplib
|
||||||
|
|
||||||
|
# connecter au serveur IMAP
|
||||||
|
conn = imaplib.IMAP4_SSL('mail.gandi.net')
|
||||||
|
conn.login('bureau@avnes.org', 'ConCho#56')
|
||||||
|
# lister les dossiers
|
||||||
|
typ, data = conn.list()
|
||||||
|
print('Liste des dossiers :')
|
||||||
|
pprint(data)
|
||||||
|
|
||||||
|
# delete mails before 14 years
|
||||||
|
before_date = (datetime.date.today() - datetime.timedelta(365.25 * 13)).strftime("%d-%b-%Y")
|
||||||
|
print("Delete emails before " + before_date)
|
||||||
|
|
||||||
|
# select ALL
|
||||||
|
conn.select('INBOX')
|
||||||
|
|
||||||
|
rv, data = conn.search(None, '(BEFORE {0})'.format(before_date))
|
||||||
|
nb_mails = str(len(data[0]))
|
||||||
|
print(nb_mails + " emails founded")
|
||||||
|
|
||||||
|
resp = input ("Enter 'c' to continue, or 'a' to abort : ")
|
||||||
|
if resp=="c":
|
||||||
|
print("Moving " + nb_mails + " emails to Trash")
|
||||||
|
messages = data[0].split(b' ')
|
||||||
|
for mail in messages:
|
||||||
|
# move to trash
|
||||||
|
conn.store(mail, '+X-GM-LABELS', '\\Trash')
|
||||||
|
|
||||||
|
#This block empties trash, remove if you want to keep, Gmail auto purges trash after 30 days.
|
||||||
|
print("Emptying Trash & Expunge...")
|
||||||
|
conn.select('[Gmail]/Corbeille')
|
||||||
|
conn.store("1:*", '+FLAGS', '\\Deleted')
|
||||||
|
# delete all the selected messages
|
||||||
|
conn.expunge()
|
||||||
|
print("Script completed")
|
||||||
|
else:
|
||||||
|
print("Script aborted")
|
||||||
|
|
||||||
|
# deconnexion du serveur
|
||||||
|
conn.close()
|
||||||
|
conn.logout()
|
||||||
|
|
||||||
50
gmail_caotek_purge.py
Normal file
50
gmail_caotek_purge.py
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# -*- coding: utf8 -*-
|
||||||
|
#
|
||||||
|
# Compter les emails BEFORE DATE
|
||||||
|
#
|
||||||
|
|
||||||
|
from pprint import pprint
|
||||||
|
import datetime
|
||||||
|
import imaplib
|
||||||
|
|
||||||
|
# connecter au serveur IMAP
|
||||||
|
conn = imaplib.IMAP4_SSL('imap.gmail.com')
|
||||||
|
conn.login('phuoc@caotek.fr', 'pcao.8211')
|
||||||
|
# lister les dossiers
|
||||||
|
typ, data = conn.list()
|
||||||
|
print('Liste des dossiers :')
|
||||||
|
pprint(data)
|
||||||
|
|
||||||
|
# delete mails before 14 years
|
||||||
|
before_date = (datetime.date.today() - datetime.timedelta(365.25 * 13)).strftime("%d-%b-%Y")
|
||||||
|
print("Delete emails before " + before_date)
|
||||||
|
|
||||||
|
# select ALL
|
||||||
|
conn.select('INBOX')
|
||||||
|
|
||||||
|
rv, data = conn.search(None, '(BEFORE {0})'.format(before_date))
|
||||||
|
nb_mails = str(len(data[0]))
|
||||||
|
print(nb_mails + " emails founded")
|
||||||
|
|
||||||
|
resp = input ("Enter 'c' to continue, or 'a' to abort : ")
|
||||||
|
if resp=="c":
|
||||||
|
print("Moving " + nb_mails + " emails to Trash")
|
||||||
|
messages = data[0].split(b' ')
|
||||||
|
for mail in messages:
|
||||||
|
# move to trash
|
||||||
|
conn.store(mail, '+X-GM-LABELS', '\\Trash')
|
||||||
|
|
||||||
|
#This block empties trash, remove if you want to keep, Gmail auto purges trash after 30 days.
|
||||||
|
print("Emptying Trash & Expunge...")
|
||||||
|
conn.select('[Gmail]/Corbeille')
|
||||||
|
conn.store("1:*", '+FLAGS', '\\Deleted')
|
||||||
|
# delete all the selected messages
|
||||||
|
conn.expunge()
|
||||||
|
print("Script completed")
|
||||||
|
else:
|
||||||
|
print("Script aborted")
|
||||||
|
|
||||||
|
# deconnexion du serveur
|
||||||
|
conn.close()
|
||||||
|
conn.logout()
|
||||||
|
|
||||||
51
gmail_ctphuoc_purge.py
Normal file
51
gmail_ctphuoc_purge.py
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# -*- coding: utf8 -*-
|
||||||
|
#
|
||||||
|
# Compter les emails BEFORE DATE
|
||||||
|
#
|
||||||
|
|
||||||
|
from pprint import pprint
|
||||||
|
import datetime
|
||||||
|
import imaplib
|
||||||
|
|
||||||
|
# connecter au serveur IMAP
|
||||||
|
conn = imaplib.IMAP4_SSL('imap.gmail.com')
|
||||||
|
conn.login('ctphuoc@gmail.com', 'ztwciswzhxxogcfv')
|
||||||
|
|
||||||
|
# lister les dossiers
|
||||||
|
typ, data = conn.list()
|
||||||
|
print('Liste des dossiers :')
|
||||||
|
pprint(data)
|
||||||
|
|
||||||
|
# delete mails before 14 years
|
||||||
|
before_date = (datetime.date.today() - datetime.timedelta(365.25 * 13)).strftime("%d-%b-%Y")
|
||||||
|
print("Delete emails before " + before_date)
|
||||||
|
|
||||||
|
# select ALL
|
||||||
|
conn.select('INBOX')
|
||||||
|
|
||||||
|
rv, data = conn.search(None, '(BEFORE {0})'.format(before_date))
|
||||||
|
nb_mails = str(len(data[0]))
|
||||||
|
print(nb_mails + " emails founded")
|
||||||
|
|
||||||
|
resp = input ("Enter 'c' to continue, or 'a' to abort : ")
|
||||||
|
if resp=="c":
|
||||||
|
print("Moving " + nb_mails + " emails to Trash")
|
||||||
|
messages = data[0].split(b' ')
|
||||||
|
for mail in messages:
|
||||||
|
# move to trash
|
||||||
|
conn.store(mail, '+X-GM-LABELS', '\\Trash')
|
||||||
|
|
||||||
|
#This block empties trash, remove if you want to keep, Gmail auto purges trash after 30 days.
|
||||||
|
print("Emptying Trash & Expunge...")
|
||||||
|
conn.select('[Gmail]/Corbeille')
|
||||||
|
conn.store("1:*", '+FLAGS', '\\Deleted')
|
||||||
|
# delete all the selected messages
|
||||||
|
conn.expunge()
|
||||||
|
print("Script completed")
|
||||||
|
else:
|
||||||
|
print("Script aborted")
|
||||||
|
|
||||||
|
# deconnexion du serveur
|
||||||
|
conn.close()
|
||||||
|
conn.logout()
|
||||||
|
|
||||||
45
imap-APP-office365-dumas.py
Normal file
45
imap-APP-office365-dumas.py
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import imaplib
|
||||||
|
import msal
|
||||||
|
import pprint
|
||||||
|
|
||||||
|
conf = {
|
||||||
|
"authority": "https://login.microsoftonline.com/47f02128-acf0-47a7-a3bf-27a3619d4a4f",
|
||||||
|
"client_id": "4fdf2634-a260-4576-a442-684998f0187b", #AppID
|
||||||
|
"scope": ['https://outlook.office365.com/.default'],
|
||||||
|
"secret": "dZD8Q~GmG_PFi.t_uRiyBEzwLeMZeemQGHUFta~J", #Key-Value
|
||||||
|
}
|
||||||
|
|
||||||
|
def generate_auth_string(user, token):
|
||||||
|
return f"user={user}\x01auth=Bearer {token}\x01\x01"
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = msal.ConfidentialClientApplication(conf['client_id'], authority=conf['authority'],
|
||||||
|
client_credential=conf['secret'])
|
||||||
|
|
||||||
|
result = app.acquire_token_silent(conf['scope'], account=None)
|
||||||
|
|
||||||
|
if not result:
|
||||||
|
print("No suitable token in cache. Get new one.")
|
||||||
|
result = app.acquire_token_for_client(scopes=conf['scope'])
|
||||||
|
|
||||||
|
if "access_token" in result:
|
||||||
|
print(result['token_type'])
|
||||||
|
pprint.pprint(result)
|
||||||
|
else:
|
||||||
|
print(result.get("error"))
|
||||||
|
print(result.get("error_description"))
|
||||||
|
print(result.get("correlation_id"))
|
||||||
|
|
||||||
|
imap = imaplib.IMAP4('outlook.office365.com')
|
||||||
|
imap.starttls()
|
||||||
|
imap.authenticate("XOAUTH2", lambda x: generate_auth_string("peinture-dumas@entreprise-dumas.com", result['access_token']).encode("utf-8"))
|
||||||
|
|
||||||
|
# Print list of mailboxes on server
|
||||||
|
code, mailboxes = imap.list()
|
||||||
|
for mailbox in mailboxes:
|
||||||
|
print(mailbox.decode("utf-8"))
|
||||||
|
# Select mailbox
|
||||||
|
imap.select("INBOX")
|
||||||
|
# Cleanup
|
||||||
|
imap.close()
|
||||||
20
imap-SSL-alinto-dumas.py
Normal file
20
imap-SSL-alinto-dumas.py
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import imaplib
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# connecter au serveur IMAP avec SSL
|
||||||
|
# authentification basique (email / password)
|
||||||
|
imap = imaplib.IMAP4_SSL('imap.entreprise-dumas.com')
|
||||||
|
# se connecter à la mailbox
|
||||||
|
mbx_name = 'peinture-dumas@entreprise-dumas.com'
|
||||||
|
mbx_pwd = 'S@sdumas69'
|
||||||
|
imap.login(mbx_name, mbx_pwd)
|
||||||
|
|
||||||
|
# Print list of mailboxes on server
|
||||||
|
code, mailboxes = imap.list()
|
||||||
|
for mailbox in mailboxes:
|
||||||
|
print(mailbox.decode("unicode"))
|
||||||
|
# Select mailbox
|
||||||
|
imap.select("INBOX")
|
||||||
|
# Cleanup
|
||||||
|
imap.close()
|
||||||
33
smtp-SSL-alinto-dumas.py
Normal file
33
smtp-SSL-alinto-dumas.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import smtplib
|
||||||
|
import ssl
|
||||||
|
|
||||||
|
# Fabrication du corps du email_passwordMessage
|
||||||
|
sender = "sasdumas@entreprise-dumas.com"
|
||||||
|
receiver = "phuoc@caotek.fr"
|
||||||
|
message = """\
|
||||||
|
Subject: Envoi d'un message en SSL
|
||||||
|
|
||||||
|
Voici le contenu du message. Phuoc"""
|
||||||
|
|
||||||
|
# Create a secure SSL context
|
||||||
|
context = ssl.create_default_context()
|
||||||
|
smtp_server = "gatewayxl.alinto.net"
|
||||||
|
smtp_port = 465 # For SSL
|
||||||
|
smtp_user = "smtpsasdumas@entreprise-dumas.com"
|
||||||
|
smtp_pass = "S@sdumas69"
|
||||||
|
|
||||||
|
# Try to log in to server and send email
|
||||||
|
try:
|
||||||
|
server = smtplib.SMTP_SSL(smtp_server, smtp_port, context=context)
|
||||||
|
server.login(smtp_user, smtp_pass)
|
||||||
|
# envoyer l'email
|
||||||
|
server.sendmail(sender, receiver, message)
|
||||||
|
print("sendmail -> OK")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# Print any error messages to stdout
|
||||||
|
print(e)
|
||||||
|
finally:
|
||||||
|
server.quit()
|
||||||
|
|
||||||
35
smtp-TLS-office365-dumas.py
Normal file
35
smtp-TLS-office365-dumas.py
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import smtplib
|
||||||
|
import ssl
|
||||||
|
|
||||||
|
# Fabrication du corps du email_passwordMessage
|
||||||
|
sender = "peinture-dumas@entreprise-dumas.com"
|
||||||
|
receiver = "phuoc@caotek.fr"
|
||||||
|
message = """\
|
||||||
|
Subject: Envoi d'un message en TLS
|
||||||
|
|
||||||
|
Voici le contenu du message. Phuoc"""
|
||||||
|
|
||||||
|
# Create a secure SSL context
|
||||||
|
context = ssl.create_default_context()
|
||||||
|
smtp_server = "smtp.office365.com"
|
||||||
|
smtp_port = 587 # For TLS
|
||||||
|
smtp_user = "peinture-dumas@entreprise-dumas.com"
|
||||||
|
smtp_pass = "Nar50611"
|
||||||
|
|
||||||
|
# Try to log in to server and send email
|
||||||
|
try:
|
||||||
|
server = smtplib.SMTP(smtp_server,smtp_port)
|
||||||
|
# server.ehlo() # Can be omitted
|
||||||
|
server.starttls(context=context) # Secure the connection
|
||||||
|
# server.ehlo() # Can be omitted
|
||||||
|
server.login(smtp_user, smtp_pass)
|
||||||
|
# envoyer l'email
|
||||||
|
server.sendmail(sender, receiver, message)
|
||||||
|
print("sendmail -> OK")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# Print any error messages to stdout
|
||||||
|
print(e)
|
||||||
|
finally:
|
||||||
|
server.quit()
|
||||||
Reference in New Issue
Block a user