Feedback on Spring Thing voting platform

Hello! Spring Thing ribbon nominations are opening soon.

Traditionally, this is done via a ballot on the Spring Thing page which runs on python and SQL to receive a ballot, remail a confirmation to the voter and encode the vote on a database.

In the last couple of years, this has been a bit tricky to troubleshoot, and some service providers blocked the automatically-generated emails as spam, making it impossible to confirm emails.

I’m considering switching to using Google Forms, as we already use google forms for other components of Spring Thing. I will almost certainly choose this way and open it up for voting tonight.

Before I do so, I just wanted to make this post in case someone has a very strong case why we shouldn’t use Google Forms for this purpose at all (if individual people have objections, I’ll just let them email me directly. I’m looking for reasons why the competition as a whole shouldn’t use google forms.)

5 Likes

Without getting into the question of using Google Forms..

What are you using to send emails? Is it just using sendmail? If you were able to switch to something like AWS SES it would be much more reliable, but it would probably take more time than you have.

1 Like

Yeah, just sendmail. The relevant code is this (by Aaron, with most of the component parts defined earlier):

def sendEmail(recipient, subject, body):
	# Prepare actual message
	message = """From: "Spring Thing" <%s>\r\nTo: %s\r\nSubject: %s\r\n\

%s
""" % (MAIL_FROM, recipient, subject, body)

	# Send the mail
	try:
		server = smtplib.SMTP(MAIL_SERVER, MAIL_SERVER_PORT)
		server.login(EMAIL_USER, EMAIL_PASSWORD)
		server.sendmail(MAIL_FROM, recipient, message)
		server.quit()
	except Exception as e:
		pass

I got everything working by debugging with error logs. I’ll post an announcement shortly

1 Like