-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path__init__.py
61 lines (55 loc) · 2 KB
/
__init__.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
# Copyright 2017 Oursky Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from .util.skymail import Mailer
import requests
import skygear
from . import settings
def verify_grecaptcha(captcha_value):
verify_url = "https://www.google.com/recaptcha/api/siteverify"
r = requests.post(verify_url, data= {
'secret': settings.config["grecaptcha_secret"],
'response': captcha_value
}
)
result = r.json()
print(result['success'])
return result['success']
@skygear.op('send_invitation_email')
def send_invitation_email(to_email, subject="", custom_message="", grecaptcha=None):
# Check grecaptcha before sending email
if settings.config["enable_grecaptcha"]:
verified = verify_grecaptcha(grecaptcha)
if not verified:
return {
'result': 'Fail',
'msg': 'captcha incorrect'
}
print("Prepare to send")
sender = settings.config["default_sender"]
reply_to = settings.config["default_reply_to"]
subject = subject
text = custom_message
html = '<p>'+custom_message+'</p>'
mailer = Mailer(
smtp_host=settings.smtp_settings["smtp_host"],
smtp_port=settings.smtp_settings["smtp_port"],
smtp_mode=settings.smtp_settings["smtp_mode"],
smtp_login=settings.smtp_settings["smtp_login"],
smtp_password=settings.smtp_settings["smtp_password"]
)
mailer.send_mail(sender, to_email, subject, text, html=html, reply_to=reply_to)
print("Email sent")
return {
'result': 'OK',
}