Skip to content

Instantly share code, notes, and snippets.

@prasetiyohadi
Created November 25, 2015 05:19
Show Gist options
  • Save prasetiyohadi/8098b37858459f2d4827 to your computer and use it in GitHub Desktop.
Save prasetiyohadi/8098b37858459f2d4827 to your computer and use it in GitHub Desktop.
Insert Mailman domain and aliases to iRedmail MySQL database
#!/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