首页 > 编程语言 >使用 ChatGPT 帮助小学生编程入门系列之二:使用 Python 编程发送电子邮件

使用 ChatGPT 帮助小学生编程入门系列之二:使用 Python 编程发送电子邮件

时间:2023-11-19 11:22:41浏览次数:46  
标签:Python 代码 编程 使用 邮箱 ChatGPT

本系列前一篇文章,我们已经介绍了如何使用 Python 编写一段代码,将搜索引擎上找到的天气预报网站上的信息,读取到本地:

使用 ChatGPT 帮助小学生编程入门系列之一:Python 编程读取和解析天气预报网页上的数据

本文我们再进一步,目标是把一段文本,通过 Python 发送到指定的邮箱去。

学会这个方法之后,我们还能把前面一篇文章的成果结合起来,比如把天气预报信息,用 Python 读取出来,然后发送到指定邮箱去。

向 ChatGPT 发出指令:

你是一个资深的 Python 技术专家,请你编写一段 Python 代码,将一个字符串值通过电子邮件,发送到指定的邮箱中去。

得到源代码:

我使用网易邮箱进行测试,把源代码拷贝到我本地后,稍作修改,主要是将我网易邮箱的用户名和 password,硬编码到代码里去,然后把网易邮箱的 SMTP 服务器地址和端口,填写到代码中去。

总共 31 行代码:

发送的正文,硬编码在代码第 19 行。

执行 Python 代码,出错了,遇到如下错误消息:smtplib.SMTPAuthenticationError: (550, b'User has no permission')

其实这个错误不怪 ChatGPT,因为 ChatGPT 上面的回复里,已经明确提醒过我们:

为了使用Gmail SMTP服务器,你需要允许"不够安全的应用"访问你的账户。你可以在Google帐户的"安全性"设置中更改这个选项。如果你启用了两步验证,你需要生成一个应用专用密码来代替你的常规密码。

对于小朋友来说,可能不太明白上面这句话。不要紧,再次求助 ChatGPT:

你是一个资深的 Python 技术专家,我用下面的 Python 代码发送电子邮件:

server = smtplib.SMTP(smtp_server, port)
server.starttls()
server.login(sender_email, password)

我的 sender_email 和 password 分别维护了我的电子邮箱账号和登录密码,我在网页端也能使用这个用户名和密码登录,但是执行代码时遇到错误消息:

raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (550, b'User has no permission')

请问如何解决?

ChatGPT 的回复答到了点子上。

这个错误提示"用户没有权限",可能是由于以下几个原因:

  1. 邮箱服务提供商需要更高级别的权限才能使用 SMTP。你可能需要在你的邮箱设置中启用"允许不够安全的应用"或者"允许第三方应用"。
  1. 你可能需要为你的应用程序生成一个特定的密码。一些服务提供商(如 Google、Yahoo 等)提供了这种功能,让你可以生成一个特殊的应用密码,以便在不直接使用你的主密码的情况下授权应用程序的访问。

确实,出于安全考虑,国内外主流的邮件提供商,默认情况都没有开启允许第三方应用使用 SMTP.

我们登录网易邮箱,选择配置->POP3/SMTP/IMAP:

然后开启 POP3/SMTP 服务即可:

这里网易邮箱会生成一个专门的授权码,我们可以理解成调用 API 时需要传入的 Access Token:

把这个授权码写入代码第 10 行的 password 变量中:

大功告成。执行 Python 代码,然后到收件人邮箱中查看,果然收到了一封标题为 Python Email Test(上图代码第 16 行指定),正文由上图代码第 19 行指定的邮件。

ChatGPT 再次帮助我们成功完成了一个编程任务。

更多阅读

标签:Python,代码,编程,使用,邮箱,ChatGPT
From: https://www.cnblogs.com/sap-jerry/p/17841756.html

相关文章

  • python踩坑记录之import和module
    1.问题重现最近开发时需要将一个别人的python项目作为submodule引入,调用的时候遇到了奇怪的问题,最后定位到问题是import导致的。首先对问题做一个说明。项目结构如下:Project/main.pysubmodule/__init__.pyhandler.pytools.py导致问题的......
  • 洛谷 B2006 地球人口承载力估计(Python3)
    这题难点在理解题意。没有任何技术含量:(题目分析:1.“可持续发展”到底什么意思?Makeendsmeet.也就是说能养活的那些人一年消耗的等于地球一年产生的。2.题中为什么要给x,a,y,b?为了求等量关系。注意,这里"x 亿人生活 a 年,或供 y 亿人生活 b年"用的是地球新生的资源和原有......
  • 函数式+泛型编程:编写简洁可复用的代码
    WriteLessDoMore.引子我个人比较信奉的一句编程箴言:WriteLessandDoMore。无论是出于懒,还是出于酷炫的编程技艺,或者是一种编程乐趣。函数式和泛型编程是编写简洁可复用代码的两大编程技艺,组合起来威力更加强大。另一项技艺是元编程。本文主要来讲讲函数式和泛型编程。......
  • 使用 ChatGPT 帮助小学生编程入门系列之一:Python 编程读取和解析天气预报网页上的数据
    现在国内小学生也开设了信息技术课,课程内容也涉及到了一些简单的编程实践,比如Scratch和Python.当初这个公众号申请时专门用了我儿子的名字,算是抢注吧,毕竟微信公众号和其他社交媒体平台不一样,不允许重名。我也曾经和我儿子聊过,我今年都40多岁了,这个公众号将来迟早有一天会正......
  • 小学四则运算编程实践(选做)
    从《构建之法》第一章的“程序”例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行“软件”,满足以下需求:(以下参考博客链接:http://www.cnblogs.com/jiel/p/4810756.html)include<stdio.h>include<stdlib.h>include<time.h>voidgenerate_arithmetic......
  • 您可以使用 ChatGPT 做十件事
    ChatGPT是一款功能强大的人工智能聊天机器人,可以回答广泛的问题并就各种主题提供连贯的解释。它具有实际应用,例如创建定制简历、制作笑话、解释复杂主题、解决数学问题以及提供人际关系建议。ChatGPT还可以用于创作音乐、编码协助、操作媒体文件、电影推荐、玩游戏、烹饪协助、改......
  • 【教3妹学编程-java基础6】详解父子类变量、代码块、构造函数执行顺序
    -----------------第二天------------------------本文先论述父子类变量、代码块、构造函数执行顺序的结论,然后通过举例论证,接着再扩展,彻底搞懂静态代码块、动态代码块、构造函数、父子类、类加载机制等知识体系。温故而知新,建议点赞收藏~ 1先说结论 面试官:好的,你说一下java中父......
  • 【教3妹学编程-算法题】三个无重叠子数组的最大和
    2哥 :3妹,咋啦?一副苦大仇深的样子?3妹:不开心呀不开心,羽生结弦宣布离婚。2哥 :羽生什么?3妹:羽生结弦!2哥 :什么结弦?3妹:羽生结弦!!!2哥:羽生结弦是谁?他离婚关你啥事啊?3妹:你不知道,他是日本著名花滑运动员,前几个月刚宣布结婚,没想到这么快就离了。真是短时间内震惊我两次!2哥 :哎,人家怎......
  • python:第二十三章:程序结构之分支结构
    一,if语句(单分支结构)if条件:   #执行代码块条件是一个表达式,它的值为布尔类型,值为True或False。如果条件为True,则执行冒号后面缩进的代码块;如果条件为False,则跳过代码块不执行。例子:123age=input('请输入你的年龄:')ifint(age)>=18: ......
  • python:第二十四章:三元运算符
    一,三元运算符的语法:value_if_trueifconditionelsevalue_if_false相当于:ifcondition:   value_if_trueelse:   value_if_true它的作用:简化了代码说明:刘宏缔的架构森林—专注it技术的博客,网站:https://blog.imgtouch.com原文: https://blog.imgtouch.c......