python-3.x - 无法从我的 python 脚本接收电子邮件
问题描述
我创建了两个 python 脚本,第一个让我能够发送电子邮件,第二个是服务器脚本,它接受来自客户端应用程序的数据,然后将数据传递给sendMail()
第一个脚本中编写的方法。
发送电子邮件脚本:使用此名称保存的脚本:sendToEmails.py
import smtplib
sender_email_id = 'xxxxxxxxxxxxxxxx@gmail.com'
# creates SMTP session
s = smtplib.SMTP('smtp.gmail.com', 587)
# start TLS for security
s.starttls()
# Authentication
s.login(sender_email_id, "*********PasswordHere*******")
def sendMail(receiverMail,msg_to_send):
s.sendmail(sender_email_id, receiverMail, str(msg_to_send))
下面是服务器 python 脚本:
服务器脚本:
import json
import pymongo
import socket
import sendToEmails
import random
if data_dict['action'] == 'RestoreAccount':
try:
info = mycol.find_one({'email': data_dict['email']})
infoUser = 'Username: '+json.dumps(info['user'])+', password: '+json.dumps(info['password'])
mailBox = json.dumps(data_dict['email'])
sendToEmails.sendMail(mailBox,infoUser)
client.send(bytes("Email sent, please check your email","utf-8"))
except:
client.send(bytes("invalid email, please create an account","utf-8"))
所以这里,服务器从客户端接收到一个字符串,其中包含一个电子邮件地址(客户端的电子邮件),然后他检查该电子邮件是否存储在数据库中,最后如果一切正常,他将一些用户登录信息发送到客户电子邮件。
但是当我启动脚本时,我的邮箱中总是没有收到任何东西,但是,当我运行这个脚本时:
if data_dict['action'] == 'verification':
code = random.randint(100000, 999999)
mailBox = json.dumps(data_dict['email'])
sendToEmails.sendMail(mailBox, code)
print("send email done")
client.send(bytes("email sent", "utf-8"))
我收到一封包含随机 6 位数代码的电子邮件。
我在控制台中没有任何错误,一切正常,只是我没有收到包含用户信息的电子邮件,我努力解决这个问题,但问题仍然存在。我该如何解决这个问题?
注意:我在我的项目中使用的是 Ubuntu 20,python 版本 3.8,数据库是 MongoDB。
解决方案
推荐阅读
- elasticsearch - Elasticsearch - 搜索小于 min_gram 的词
- linux - Docker 容器 - 使用 xclip 提取文本
- amazon-web-services - AWS- 数据没有从 Lambda 保存到 DynamoDB
- java - 如何根据分隔符将数组列表拆分为两个数组列表?
- python - Python: Read list of dataframe from csv file
- css - 高度和线高之间的差异,使用 rem
- pine-script - 如何在 pine 脚本中使用参数(输入浮点数)调用“atr”?
- apache-spark - 在 spark sql 反射函数中捕获异常
- python - Python 类自身值错误,预期类型 'str' 得到了 Tuple[str],天蓝色 ClientSecretCredential
- firebase - 如何自动更新 Firestore 中不同集合中的相同字段