首页 > 解决方案 > 无法从我的 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。

标签: python-3.xmongodbemail

解决方案


推荐阅读