From 7005d561170bcea2fffff01eb72cf7bc84922e82 Mon Sep 17 00:00:00 2001 From: "Antonio Fiuza da cunha Silva (fiuzadacua)" Date: Tue, 6 Apr 2021 13:08:56 +0100 Subject: [PATCH] Add files via upload --- EmailSender/Subscribers.xlsx | Bin 0 -> 9095 bytes .../__pycache__/add_email.cpython-38.pyc | Bin 0 -> 696 bytes .../__pycache__/quick_guide.cpython-38.pyc | Bin 0 -> 1054 bytes .../__pycache__/send_email.cpython-38.pyc | Bin 0 -> 958 bytes .../__pycache__/spammer.cpython-38.pyc | Bin 0 -> 1323 bytes EmailSender/add_email.py | 20 ++++++++ EmailSender/main.py | 46 ++++++++++++++++++ EmailSender/quick_guide.py | 9 ++++ EmailSender/send_email.py | 30 ++++++++++++ EmailSender/spammer.py | 45 +++++++++++++++++ 10 files changed, 150 insertions(+) create mode 100644 EmailSender/Subscribers.xlsx create mode 100644 EmailSender/__pycache__/add_email.cpython-38.pyc create mode 100644 EmailSender/__pycache__/quick_guide.cpython-38.pyc create mode 100644 EmailSender/__pycache__/send_email.cpython-38.pyc create mode 100644 EmailSender/__pycache__/spammer.cpython-38.pyc create mode 100644 EmailSender/add_email.py create mode 100644 EmailSender/main.py create mode 100644 EmailSender/quick_guide.py create mode 100644 EmailSender/send_email.py create mode 100644 EmailSender/spammer.py diff --git a/EmailSender/Subscribers.xlsx b/EmailSender/Subscribers.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0840935c72f6cf44422acfec442c5e6dbc9ba8d7 GIT binary patch literal 9095 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 literal 0 HcmV?d00001 diff --git a/EmailSender/__pycache__/add_email.cpython-38.pyc b/EmailSender/__pycache__/add_email.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a64168f24faee5ed0b3c38469f7bfc04216e88be GIT binary patch literal 696 zcmYjO!EV$r5Vf6bnqBQm912LBj8qBs(hCQqs)CjRC$tBa7HPFo$;MOGjT2{Wr@O6^ zQ@QdF?U66xAACcILw|u2ldXVGG|!$q&$DOda4_f*wC}Ifryq=vpKWm0@E_Sjx0?up z2&%}02quCrWI_cUlVNy+3>l>@{sC)~HD*5~O{d2E zy0c4adKK5?8qW%Xuj`I3?v1ONO^uv^vD+(US2t}@7keM)iF;zXn*)bDk%}im7_gR~ z>xwURr369ezVmX2^VC^wLMER#jfeUja%#{eYTzvXXg~bA7@M zq_UJyILnub<*-Tt1c=An)BR!B$GU`~JYOk4P&yIEOKq~5)|roz)X6jO9a)r>^MQ57 zhbbuKJ7b zp2SX%9ZG%vMoc^C-_H(qriT_AHnkZjaJsmdz6P5)T~6P$%^E`?z)Z0*$7`kS^4t$F z`rqqz{`L_9p&{+j2(iyLX^daUdaRGDd4TMYnGIal`}O5_;64&Q-p#eB6ufBrZQI$! F!5^3DzZ(Dm literal 0 HcmV?d00001 diff --git a/EmailSender/__pycache__/quick_guide.cpython-38.pyc b/EmailSender/__pycache__/quick_guide.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5cce1fbbd28a6a7517cf406f26f7424a5a31e634 GIT binary patch literal 1054 zcmZWo!EV$r5Y4tAp@@C}5{Kc0D$$^VdT5I(s->bFXe(`dK`ViGJ=?hJ#HsBxU9Rvm z@JYS$3EVjG##vOVTI+0VkKfFDFLSoGmS-4GhxW_Q)hzoZi~q+87H=`bV?1=G2j8<# znO+%X>#I}j+!+!(#7wafvEK#*+(GQhk$M93L$=nDX6303>|anUO(6UfUAAUAr}Nfm zCRbDGI*LxB5W_U#sOXA)FgSBFsuskRGL}L+2~%&Hh=Z3D8dX*7Y2sp$AF^jsm;w+Y zH-Q$erOsGOrMkktqjQH-@7nW{41m4HWo&oO&k-0)Nd&N+Jm1(G9h{z>?Btup(6fqw zuIb=<%9duvGS#YLO{2b?2`VkFZMYUHl78l_Kui9B)Ve3-;%@$`*w>ocM$&F?Z!Kvl ztv!dpfo9%SDH@q9?QbHjh8)&)yZP(lqnd+T3z7n@UHv?gWg(|(RBly0r*skQpkc>c z-^<`Uv4zeig0}!nn7~jMLi+gR^uzJdNNA6i;%?ABT$V^G5Z4xHCROpM-Ikv*qaOuj6+d z=Fv6d1Nr<#Aok` JlUu(rv%e^UMPL8` literal 0 HcmV?d00001 diff --git a/EmailSender/__pycache__/send_email.cpython-38.pyc b/EmailSender/__pycache__/send_email.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3ca6a6a1402cd038af045958fe595dc8d2fb7cf GIT binary patch literal 958 zcmY*X&2AGh5VrR(o6S#q;K*SMmqtiY4@gK=MG*x~r9z|?sEQOeYqxdcU2oUkHc59+ z<;puGM_z&hZ@|@8#G$Xy6XOI*@ycV*H-F#G_^8zi5Ug)|{L_w$&`+b>Ulu4YV9SRf z2qKuHt zQ&c&`uH4cd*`-Sy;(oD4PUZct6Ev>p9PHlM%0DWX)UGi`=lp!j#5_X~@65f@TNrdp z)s#>CYkZBX+VWms-hEY{2P7bkg;mwd`n*x15-%)_NORsSYo!l(0C)>VLyQCZ0#=7RTTtRRcB56BBN>l|Nddyjg|WBxCQ`V5cJR&W8HXg726zcl~_vZEb%%|{qA z;l{n#q9tbD3O8Qu9eIs^fSQ2$O<4O!ejT!ag}-`70YkICe)WH>iRuXOSpQ^07M){^ zj$a)Ui0REdEdh(KVZrAJat2F?SvgN)dp2hMb9|1QUZ*FW9@{?PYn|S=$#RVi*l^`F zNu4YQHLCH-!-$QR!@5_;fUnhkwmu8=Yqs9>LEo4KzhRw#7JPvK2_B;tA2*R5E!Wu% zR~hnbK%S^xTlv7_@8j2i+*l#VilBF!yKgaBY>ca^$+VbqZMILPIlXXGxPZ2yEsy$I z&1sY=S>?q->?)Eg%?Zy_Aq`0x)7%(t$eaVZud0G=Cr>3$4fqtM0?;0&76jNoHKb5v zD$`;{GA<<%1(|X?=e)Q~_&(n)@t2R#;`XycPV)3r=vR5@8JRpxaN#|*Ia89JiMMvxIojU}K$=F2{ zRSwOD^dpnoa{ItFb30SH_!FAGSbs}|X=cR(-ZQIwT!eP`%75>iZQJpS(4 z)4lQd2@Rz>5Jem9E1jpd4cy_|&`8cp8XL&s7`I_2mEl_h8aaq-8keatK!(wd;Wt8Z z+IL*Xhn!nFdOyA=!dRM!LRgW?AK-@d-`QyIYJ6?)Y8rHO*|6{TzwWLbO&sGr!%v`Q zFH?nu8}U2RA3%5B-rc!3d2Zk;Pt1%SETUP:\n1.Create " + "an Excel file named Subscribers.xlsx on the folder you saved the bot;\n2.Add up to 995 email addresses from " + "the cell A1 and below;\n3.Make sure you don't leave any blank cell in between email addresses or else it " + "won't be read.\n\n->OPTIONS:\n1.Spammer - Allows you to spam the email addresses on your excel sheet for " + "an amount of times of your own choice;\n2.Send email - Allows you to send an email with a subject and a " + "body to the emails on your Excel sheet;\n3.Add Subscriber - Type in the email address you wish to add to " + "the Excel spreadsheet.\n\nHope you enjoy it and make a good use of it!") diff --git a/EmailSender/send_email.py b/EmailSender/send_email.py new file mode 100644 index 0000000..31e9107 --- /dev/null +++ b/EmailSender/send_email.py @@ -0,0 +1,30 @@ +import openpyxl # import library to read excel files +import smtplib # library to login to gmail, send emails, etc... + + +def sendEmail(): + sender = " " # email address for sender + password = " " # password for sender + openFile = openpyxl.load_workbook("Subscribers.xlsx") + openSheet = openFile.active # gets the active sheet + recipientsList = [] + initialRow = 2 + recipient = openSheet.cell(row=initialRow, column=1).value + + while openSheet.cell(row=initialRow, column=1).value is not None: # look for recipients on the excel sheet + if initialRow == 997: # statement to avoid reaching max depth + print("The maximum of recipients was exceeded! ") + break + else: + initialRow += 1 + recipientsList.append(recipient) + + subject = str(input("What is the subject of the email?\nSubject: ")) + message = str(input("What is the body of your message?\nBody: ")) + + smtp_sever = smtplib.SMTP_SSL("smtp.gmail.com", 465) # sets the server and the port + smtp_sever.login(sender, password) # login to account with email and pw + content = "Subject: {}\n\n{}".format(subject, message) # formats the email + smtp_sever.sendmail(sender, recipient, content) # send message + + smtp_sever.close() # closes server/ disconnects diff --git a/EmailSender/spammer.py b/EmailSender/spammer.py new file mode 100644 index 0000000..31bf5fb --- /dev/null +++ b/EmailSender/spammer.py @@ -0,0 +1,45 @@ +import openpyxl # import library to read excel files +import smtplib # library to login to gmail, send emails, etc... +import time # imports time functions + + +def spammer(): + sender = " " # email address for sender + password = " " # password for sender + openFile = openpyxl.load_workbook("Subscribers.xlsx") + openSheet = openFile.active # gets the active sheet + recipientsList = [] + initialRow = 2 + + while openSheet.cell(row=initialRow, column=1).value is not None: + recipient = openSheet.cell(row=initialRow, column=1).value + if recipient is None: + print("No more emails addresses were found.\nPlease ensure that there's no blank cell in between email " + "addresses!") + break + elif initialRow == 997: + print("The maximum of recipients was exceeded! ") + break + else: + initialRow += 1 + recipientsList.append(recipient) + + subject = str(input("What is the subject of the email?\nSubject: ")) + message = str(input("What is the body of your message?\nBody: ")) + numberOfEmails = int(input("How many times do you want to spam this email?\n== Be aware the limit is 100 == " + "\nSpam number: ")) + + smtp_sever = smtplib.SMTP_SSL("smtp.gmail.com", 465) + smtp_sever.login(sender, password) + content = "Subject: {}\n\n{}".format(subject, message) + + if numberOfEmails > 995: + numberOfEmails = 995 + + while numberOfEmails > 0: + numberOfEmails -= 1 + for recipient in recipientsList: + time.sleep(5) # avoids server disconnection from gmail + smtp_sever.sendmail(sender, recipient, content) + + smtp_sever.close()