Send emails to donors post-donation

This commit is contained in:
Drew DeVault 2015-09-06 17:15:09 -04:00
parent 243fc217ce
commit 7fcbac2e83
5 changed files with 60 additions and 2 deletions

19
emails/thank-you Normal file
View File

@ -0,0 +1,19 @@
Thank you for donating!
Receipt:
{{#monthly}}
Monthly donation ${{amount}}
{{/monthly}}
{{^monthly}}
One-time donation ${{amount}}
{{/monthly}}
You can view and manage your donations online here:
{{root}}/panel
Thanks again! If you have questions, contact {{your_email}}.
--
{{your_name}}

View File

@ -5,6 +5,7 @@ from fosspay.objects import *
from fosspay.database import db
from fosspay.common import *
from fosspay.config import _cfg, load_config
from fosspay.email import send_thank_you
import os
import locale
@ -125,6 +126,8 @@ def donate():
type = DonationType.one_time
else:
type = DonationType.monthly
amount = int(amount)
except:
return { "success": False, "reason": "Invalid request" }, 400
@ -161,6 +164,8 @@ def donate():
db.commit()
send_thank_you(user, amount, type == DonationType.monthly)
if new_account:
return { "success": True, "new_account": new_account, "password_reset": user.password_reset }
else:

33
fosspay/email.py Normal file
View File

@ -0,0 +1,33 @@
import smtplib
import pystache
import os
import html.parser
from email.mime.text import MIMEText
from werkzeug.utils import secure_filename
from flask import url_for
from fosspay.database import db
from fosspay.objects import User
from fosspay.config import _cfg, _cfgi
def send_thank_you(user, amount, monthly):
if _cfg("smtp-host") == "":
return
smtp = smtplib.SMTP(_cfg("smtp-host"), _cfgi("smtp-port"))
smtp.login(_cfg("smtp-user"), _cfg("smtp-password"))
with open("emails/thank-you") as f:
message = MIMEText(html.parser.HTMLParser().unescape(\
pystache.render(f.read(), {
"user": user,
"root": _cfg("protocol") + "://" + _cfg("domain"),
"your_name": _cfg("your-name"),
"amount": "{:.2f}".format(amount / 100),
"monthly": monthly,
"your_email": _cfg("your-email")
})))
message['X-MC-PreserveRecipients'] = "false"
message['Subject'] = "Thank you for your donation!"
message['From'] = _cfg("smtp-from")
message['To'] = user.email
smtp.sendmail(_cfg("smtp-from"), [ user.email ], message.as_string())
smtp.quit()

View File

@ -78,7 +78,7 @@ window.email = "{{user.email}}";
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">$</span>
<input id="custom-amount-text" type="text" value="1"
<input id="custom-amount-text" type="text" value="13.37"
class="form-control" placeholder="Amount" />
</div>
</div>

View File

@ -18,12 +18,13 @@
{% endif %}
<form action="login" method="POST">
<div class="form-group">
<input class="form-control" type="text" name="email" placeholder="you@email.com" />
<input class="form-control" type="text" name="email" placeholder="your@email.com" />
</div>
<div class="form-group">
<input class="form-control" type="password" name="password" placeholder="Password" />
</div>
<input type="submit" value="Log in" class="btn btn-primary" />
<a style="margin-left: 20px" href="password-reset">Reset password</a>
</form>
</div>
</div>