Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, request
- import telepot
- import urllib3
- import smtplib, ssl
- import traceback
- import re
- import time
- #print("Printed immediately.")
- #time.sleep(2.4)
- #print("Printed after 2.4 seconds.")
- proxy_url = "http://proxy.server:3128"
- telepot.api._pools = {'default': urllib3.ProxyManager(proxy_url=proxy_url, num_pools=3, maxsize=10, retries=False, timeout=30),}
- telepot.api._onetime_pool_spec = (urllib3.ProxyManager, dict(proxy_url=proxy_url, num_pools=1, maxsize=1, retries=False, timeout=30))
- secret = "00000"
- bot = telepot.Bot('abc12345')
- bot.setWebhook("https://xxxxx.pythonanywhere.com/{}".format(secret), max_connections=1)
- app = Flask(__name__)
- rafia_id = 12345
- matan_id = 54321
- rafia_channel_id = -123456789
- channel_list = ['-123456789','-987654321']
- email_regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
- @app.route('/{}'.format(secret), methods=["POST"])
- def telegram_webhook():
- update = request.get_json()
- return "OK"
- if "message" in update:
- chat_id = update["message"]["chat"]["id"]
- from_id = update["message"]["from"]["id"]
- time.sleep(1)
- if "private" != update["message"]["chat"]["type"]:
- return "OK"
- message = update["message"]["text"]
- if message == "/start":
- welcome_message = '''
- להוספת כתובת המייל שלך לרשימת התפוצה נא רשום כאן את כתובת המייל שלך
- '''
- bot.sendMessage(from_id, welcome_message)
- #elif str(from_id) == str(matan_id):
- # send_mail_bcc(, 'hhiiiiiiiii')
- elif check_email_address(message):
- with open('/home/xxxxx/mysite/emails.txt', "a") as f:
- f.write(message + '\n')
- response_to_email = "תודה, המייל נקלט!"
- bot.sendMessage(chat_id, response_to_email)
- return "OK"
- '''
- with open('/home/xxxx/mysite/emails.txt', "r") as f:
- lines = f.readlines()
- for line in lines:
- mail_address = line.replace('\n', '')
- try:
- send_mail(mail_address, message)
- except:
- var = traceback.format_exc()
- bot.sendMessage(chat_id, mail_address + '\n\n\n' + var)
- '''
- return "OK"
- if "channel_post" in update:
- chat_id = str(update["channel_post"]["chat"]["id"])
- if chat_id not in channel_list:
- return "OK"
- message = update["channel_post"]["text"]
- with open('/home/xxxxx/mysite/emails.txt', "r") as f:
- lines = f.readlines()
- ### OPTION 1 ###
- for line in lines:
- mail_address = line.replace('\n', '')
- try:
- # bot.sendMessage(matan_id, mail_address)
- send_mail(mail_address, message)
- except Exception as e:
- var = traceback.format_exc()
- bot.sendMessage(rafia_id, mail_address + '\n\n\n' + str(e))
- return "OK"
- ### OPTION 2 ###
- # mails = list(set([i.replace('\n', '') for i in lines]))
- # try:
- # send_mail_bcc(mails, message)
- # except Exception as e:
- # # var = traceback.format_exc()
- # bot.sendMessage(rafia_id, str(e))
- def send_mail(mail_address, message_to_send):
- smtp_server = "smtp.gmail.com"
- sender_email = "[email protected]"
- receiver_email = mail_address
- password = '00000'
- subject = "Subject: נושא\n"
- message = subject + message_to_send
- time.sleep(4)
- context = ssl.create_default_context()
- # with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
- # server.login(sender_email, password)
- # server.sendmail(sender_email, receiver_email, message.encode('utf8'))
- smtpserver = smtplib.SMTP(smtp_server, 587)
- smtpserver.ehlo()
- smtpserver.starttls(context = context)
- smtpserver.ehlo()
- smtpserver.login(sender_email, password)
- smtpserver.sendmail(sender_email, receiver_email, message.encode('utf8'))
- smtpserver.close()
- def send_mail_bcc(mails_list, message_to_send):
- smtp_server = "smtp.gmail.com"
- sender_email = "[email protected]"
- password = '0000'
- subject = "נושא"
- # message = subject + message_to_send
- time.sleep(4)
- 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
- context = ssl.create_default_context()
- smtpserver = smtplib.SMTP(smtp_server, 587)
- smtpserver.ehlo()
- smtpserver.starttls(context = context)
- smtpserver.ehlo()
- smtpserver.login(sender_email, password)
- smtpserver.sendmail(sender_email, mails_list, message.encode('utf8'))
- smtpserver.close()
- def check_email_address(email_address):
- if(re.fullmatch(email_regex, email_address)):
- return True
- return False
Add Comment
Please, Sign In to add comment