ovh-scripts/ovh-mail.py

54 lines
1.8 KiB
Python
Executable File

#!/usr/bin/python3
import requests
import ovh
import pycurl
import json
import argparse
def writeRedirectionsToFile(client):
# Grab bill list
mailbox = client.get('/email/domain/hyrule.ovh/redirection')
file = open(redir_file,'wt')
for id in mailbox:
redirection = client.get('/email/domain/hyrule.ovh/redirection/'+str(id))
file.write(redirection['from']+','+redirection['to']+','+redirection['id']+'\n')
file.close()
def checkRedirExists(client,fr,to):
mailbox = client.get('/email/domain/hyrule.ovh/redirection')
for id in mailbox:
redirection = client.get('/email/domain/hyrule.ovh/redirection/'+str(id))
if (redirection['from'] == fr and redirection['to'] == to):
print("Redirection existante")
return id
elif (redirection['from'] == fr and redirection ['to'] != to):
print("Redirection existante vers l'adresse " + redirection['to'])
return id
else:
return False
def addRedirection(client,fr,to):
result = client.post('/email/domain/hyrule.ovh/redirection',_from=fr,localCopy=False,to=to)
print(json.dumps(result,indent=4))
return 0
parser = argparse.ArgumentParser(description='Process arguments')
parser.add_argument('method', metavar='method', type=str, help='Function to use')
parser.add_argument('--fr', metavar='fr', type=str, help='from mail address')
parser.add_argument('--to', metavar='to', type=str, help='to mail address')
args = parser.parse_args()
redir_file = '/var/scripts/ovh_api/data/redirections.txt'
try:
input = raw_input
except NameError:
pass
client = ovh.Client()
if (args.method == "write"):
writeRedirectionsToFile(client)
elif (args.method == "add"):
if not (checkRedirExists(client,args.fr,args.to)):
addRedirection(client,args.fr,args.to)