Domanda

I am trying to send emails to myself using a Python script, and luckily I came across this post:

How to send an email with Gmail as provider using Python?

The trouble is, smtplib sends out the password for the script in plain text and I am skeptical about its security. Further my script contains my username and password in plain text. Are there any good ways to use Python and send emails without having to keep my password as plain text?

I also saw this on StackOverflow: Python smtplib security but the answer is not completely helping me resolve this conflict. However, I'm not ready to give up yet.


Some more information: I'm trying to set up my Raspberry Pi as a server that scrapes through a website. When a specific thing about the website changes, I want to be notified via email. However, I don't want to leave my Pi sitting around with a script that has my username and password in plain text.

È stato utile?

Soluzione

The connection uses STARTTLS, so its not being sent over the internet in clear text.

The function server.starttls() starts the encrypted communication with the server on port 465 instead of the normal port 25 for unencrypted SMTP mail traffic.

Altri suggerimenti

An obvious solution would be to use

getpass.getpass()

to get the password at the start of running, and store that in memory.

Even using starttls I just got blocked by Gmail from sending email from my Python script (which worked in the past)... I get a SMTPAuthenticationError with a link to continue sign-in via a browser, which is no help for my Python script trying to send mail via smtplib. I do not have "2 step verification" setup on my account currently.

I had to go to my Google account (in a browser) and select an option to "enable access for less secure apps"
https://www.google.com/settings/security

Changing that allowed my script to work again. It looks like Google really wants us to use 2-step verification, and thus an app-specific password, going forward. I guess I will do that and put up with having to enter an SMS code to login my email now and then...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top