Created
November 25, 2015 05:19
-
-
Save prasetiyohadi/8098b37858459f2d4827 to your computer and use it in GitHub Desktop.
Insert Mailman domain and aliases to iRedmail MySQL database
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import MySQLdb | |
db = MySQLdb.connect("localhost", "dbuser", "dbpass", "dbname") | |
cursor = db.cursor() | |
print "Insert mailman domain and aliases to iRedmail database." | |
sql = """ | |
select * from domain where domain="lists.example.com" | |
""" | |
query = cursor.execute(sql) | |
data = cursor.fetchone() | |
if data is not None: | |
print "Mailman domain is already exist." | |
else: | |
sql = """ | |
INSERT INTO vmail.domain (domain, transport, created) VALUES | |
('lists.example.com', 'mailman:', CURRENT_TIMESTAMP); | |
""" | |
try: | |
cursor.execute(sql) | |
db.commit() | |
print "Mailman domain is inserted." | |
except: | |
db.rollback() | |
fname = './milis.txt' | |
with open(fname) as f: | |
content = f.readlines() | |
for milis in content: | |
milis = milis.strip("\n") | |
sql = ''' | |
select * from alias where address="'''+milis+'''@example.com" | |
''' | |
query = cursor.execute(sql) | |
data = cursor.fetchone() | |
if data is not None: | |
print "List %s alias is already exist." % milis | |
else: | |
print "List %s alias is not exist." % milis | |
sql = """ | |
INSERT INTO vmail.alias | |
(address, goto, name, accesspolicy, domain, created, modified) VALUES | |
('"""+milis+"""@example.com', '"""+milis+"""@lists.example.com', '', '', | |
'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-admin@example.com', '"""+milis+"""-admin@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-bounces@example.com', '"""+milis+"""-bounces@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-confirm@example.com', '"""+milis+"""-confirm@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-join@example.com', '"""+milis+"""-join@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-leave@example.com', '"""+milis+"""-leave@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-owner@example.com', '"""+milis+"""-owner@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-request@example.com', '"""+milis+"""-request@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-subscribe@example.com', '"""+milis+"""-subscribe@lists.example.com', | |
'', '', 'example.com', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), | |
('"""+milis+"""-unsubscribe@example.com', | |
'"""+milis+"""-unsubscribe@lists.example.com', '', '', 'example.com', | |
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); | |
""" | |
try: | |
cursor.execute(sql) | |
db.commit() | |
print "List %s alias is inserted." % milis | |
except: | |
db.rollback() | |
db.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment