ploni01

Untitled

May 26th, 2022 (edited)
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.02 KB | None | 0 0
  1. from flask import Flask, request
  2. import telepot
  3. import urllib3
  4. import smtplib, ssl
  5. import traceback
  6. import re
  7. import time
  8.  
  9. #print("Printed immediately.")
  10. #time.sleep(2.4)
  11. #print("Printed after 2.4 seconds.")
  12.  
  13. proxy_url = "http://proxy.server:3128"
  14. telepot.api._pools = {'default': urllib3.ProxyManager(proxy_url=proxy_url, num_pools=3, maxsize=10, retries=False, timeout=30),}
  15.  
  16. telepot.api._onetime_pool_spec = (urllib3.ProxyManager, dict(proxy_url=proxy_url, num_pools=1, maxsize=1, retries=False, timeout=30))
  17.  
  18. secret = "00000"
  19. bot = telepot.Bot('abc12345')
  20. bot.setWebhook("https://xxxxx.pythonanywhere.com/{}".format(secret), max_connections=1)
  21.  
  22. app = Flask(__name__)
  23.  
  24. rafia_id = 12345
  25. matan_id = 54321
  26. rafia_channel_id = -123456789
  27. channel_list = ['-123456789','-987654321']
  28. email_regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
  29.  
  30. @app.route('/{}'.format(secret), methods=["POST"])
  31. def telegram_webhook():
  32. update = request.get_json()
  33.  
  34. return "OK"
  35.  
  36. if "message" in update:
  37. chat_id = update["message"]["chat"]["id"]
  38. from_id = update["message"]["from"]["id"]
  39. time.sleep(1)
  40.  
  41. if "private" != update["message"]["chat"]["type"]:
  42. return "OK"
  43.  
  44. message = update["message"]["text"]
  45.  
  46. if message == "/start":
  47. welcome_message = '''
  48. להוספת כתובת המייל שלך לרשימת התפוצה נא רשום כאן את כתובת המייל שלך
  49. '''
  50. bot.sendMessage(from_id, welcome_message)
  51.  
  52. #elif str(from_id) == str(matan_id):
  53. # send_mail_bcc(, 'hhiiiiiiiii')
  54.  
  55. elif check_email_address(message):
  56. with open('/home/xxxxx/mysite/emails.txt', "a") as f:
  57. f.write(message + '\n')
  58. response_to_email = "תודה, המייל נקלט!"
  59. bot.sendMessage(chat_id, response_to_email)
  60.  
  61. return "OK"
  62.  
  63. '''
  64. with open('/home/xxxx/mysite/emails.txt', "r") as f:
  65. lines = f.readlines()
  66. for line in lines:
  67. mail_address = line.replace('\n', '')
  68. try:
  69. send_mail(mail_address, message)
  70. except:
  71. var = traceback.format_exc()
  72. bot.sendMessage(chat_id, mail_address + '\n\n\n' + var)
  73. '''
  74. return "OK"
  75.  
  76. if "channel_post" in update:
  77. chat_id = str(update["channel_post"]["chat"]["id"])
  78. if chat_id not in channel_list:
  79. return "OK"
  80.  
  81. message = update["channel_post"]["text"]
  82.  
  83. with open('/home/xxxxx/mysite/emails.txt', "r") as f:
  84. lines = f.readlines()
  85.  
  86.  
  87. ### OPTION 1 ###
  88. for line in lines:
  89. mail_address = line.replace('\n', '')
  90. try:
  91. # bot.sendMessage(matan_id, mail_address)
  92. send_mail(mail_address, message)
  93. except Exception as e:
  94. var = traceback.format_exc()
  95. bot.sendMessage(rafia_id, mail_address + '\n\n\n' + str(e))
  96. return "OK"
  97.  
  98.  
  99. ### OPTION 2 ###
  100. # mails = list(set([i.replace('\n', '') for i in lines]))
  101. # try:
  102. # send_mail_bcc(mails, message)
  103. # except Exception as e:
  104. # # var = traceback.format_exc()
  105. # bot.sendMessage(rafia_id, str(e))
  106.  
  107.  
  108.  
  109. def send_mail(mail_address, message_to_send):
  110. smtp_server = "smtp.gmail.com"
  111. sender_email = "[email protected]"
  112. receiver_email = mail_address
  113. password = '00000'
  114. subject = "Subject: נושא\n"
  115. message = subject + message_to_send
  116. time.sleep(4)
  117.  
  118. context = ssl.create_default_context()
  119. # with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
  120. # server.login(sender_email, password)
  121. # server.sendmail(sender_email, receiver_email, message.encode('utf8'))
  122.  
  123. smtpserver = smtplib.SMTP(smtp_server, 587)
  124. smtpserver.ehlo()
  125. smtpserver.starttls(context = context)
  126. smtpserver.ehlo()
  127. smtpserver.login(sender_email, password)
  128. smtpserver.sendmail(sender_email, receiver_email, message.encode('utf8'))
  129. smtpserver.close()
  130.  
  131.  
  132. def send_mail_bcc(mails_list, message_to_send):
  133. smtp_server = "smtp.gmail.com"
  134. sender_email = "[email protected]"
  135. password = '0000'
  136. subject = "נושא"
  137. # message = subject + message_to_send
  138. time.sleep(4)
  139.  
  140.  
  141. message = "From: %s\r\n" % sender_email + "To: %s\r\n" % '' + "CC: %s\r\n" % '' + "BCC: %s\r\n" % ",".join(mails_list) + "Subject: %s\r\n" % subject + "\r\n" + message_to_send
  142.  
  143.  
  144.  
  145. context = ssl.create_default_context()
  146.  
  147. smtpserver = smtplib.SMTP(smtp_server, 587)
  148. smtpserver.ehlo()
  149. smtpserver.starttls(context = context)
  150. smtpserver.ehlo()
  151. smtpserver.login(sender_email, password)
  152. smtpserver.sendmail(sender_email, mails_list, message.encode('utf8'))
  153. smtpserver.close()
  154.  
  155.  
  156. def check_email_address(email_address):
  157. if(re.fullmatch(email_regex, email_address)):
  158. return True
  159. return False
  160.  
Add Comment
Please, Sign In to add comment