-
Notifications
You must be signed in to change notification settings - Fork 4
/
sendEmail.py
143 lines (113 loc) · 3.72 KB
/
sendEmail.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import os, getopt, sys
from os.path import basename
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.base import MIMEBase
from email import encoders
import smtplib
import json
def getFileData(filePath):
lines = ""
if os.path.exists(filePath):
f = open(filePath, 'r')
for line in f.readlines():
lines += (str(line).replace('\n','')+'\n')
return lines
def getFileDataAsList(filePath):
lines = []
if os.path.exists(filePath):
f = open(filePath, 'r')
for line in f.readlines():
lines.append(str(line).replace('\n',''))
return lines
def getEmailsFromFile(filePath):
lines = []
if os.path.exists(filePath):
f = open(filePath, 'r')
for line in f.readlines():
lines.append(line)
return lines
def sendMail(email_ids,body,subject):
# To use files take a file argunment in the function
email_json = json.load(open('EMAIL_CONFIG','r'))
fromEmail=email_json['email']
fromPassword=email_json['pass']
msg = MIMEMultipart()
msg['From'] = fromEmail
msg['To'] = listToString(email_ids)
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
# for f in files or []:
# with open(f, "rb") as fil:
# part = MIMEApplication(
# fil.read(),
# Name=basename(f)
# )
# part['Content-Disposition'] = 'attachment; filename="%s"' % basename(f)
# msg.attach(part)
# for f in fileNames:
# msg.attach(MIMEBase('text',file(f).read()))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromEmail, fromPassword)
x = server.sendmail(fromEmail, email_ids, msg.as_string('utf-8'))
server.quit()
return
def listToString(myList):
str = ''
for l in myList:
str+=(','+l)
return str[1:].replace('\n','')
# def main(argv):
# message = None
# emailIds = []
# attachments = []
# useremail = None
# password = None
# subject = None
# try:
# opts, args = getopt.getopt(argv,"hf:m:s:e:u:p:l:a:",["--help","file=","message=","subject=","emails=","username=","password=","emailfilepath=","attachmentspath="])
# except getopt.GetoptError:
# print 'sendEmail.py -f <FilePath> -m<Message> -s<Subject> -e<Email Ids("," Seperated) -u<UserEmail> -p<Password> -l<EmailsFilePath> -a<AttachmentsListFilePath>'
# sys.exit(2)
# for opt, arg in opts:
# if opt in ("-h", "--help"):
# print 'sendEmail.py -f <FilePath> -m<Message> -s<Subject> -e<Email Ids("," Seperated) -u<UserEmail> -p<Password> -l<EmailsFilePath> -a<AttachmentsListFilePath>'
# sys.exit()
# elif opt in ("-f", "--file"):
# filePath = arg
# message = getFileData(filePath)
# elif opt in ("-m", "--message"):
# message = arg
# elif opt in ("-s", "--subject"):
# subject = arg
# elif opt in ("-p", "--password"):
# password = arg
# elif opt in ("-u", "--useremail"):
# useremail = arg
# elif opt in ("-e", "--emails"):
# emailIds = arg.split(",")
# elif opt in ("-l", "--emailfilepath"):
# emailIds = getEmailsFromFile(arg)
# elif opt in ("-a", "--attachmentspath"):
# attachments = getFileDataAsList(arg)
# if len(emailIds) is 0:
# print 'Error : Either give emails or filepath'
# return
# if message is None:
# print 'Error : Either give message or filepath'
# return
# if subject is None:
# print 'Error : No subject given'
# return
# if useremail is None:
# print 'Error : No Useremail id'
# return
# if password is None:
# print 'Error : No Password given'
# return
# sendMail(emailIds,message,subject,useremail,password,attachments)
# return
if __name__ == "__main__":
main(sys.argv[1:])