IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Python实现手机App邮件发送动能,BeeWare 编写安卓软件 ~ -> 正文阅读

[移动开发]Python实现手机App邮件发送动能,BeeWare 编写安卓软件 ~

BeeWare 编写安卓软件,邮件发送动能

提醒:运行Python 3.7或更高版本

例如:

[** ] 作者使用的Pycharm编译器
Pycharm 安装与使用教程以及BeeWare安装教程已过滤 ~ ~ ~
BeeWare 框架安装打包过程可以参考上一期的教程哦:https://blog.csdn.net/qq_45787306/article/details/125349461

前言/背景

一个代码库。多个应用。
BeeWare允许您用Python编写应用程序并在多个平台上发布它。无需用多种编程语言重写应用程序。这意味着构建工具,环境,兼容性等没有问题。

蟒蛇原生工具…

Python已经证明自己是一种功能强大的语言 - 对于新手来说平易近人,但在专家手中却很强大。为什么你不能在任何地方使用Python,你需要告诉计算机做某事?你的工具难道不应该利用Python作为一种语言的所有功能,而不仅仅是那些很好地映射到C绑定的位吗?
在这里插入图片描述
…在移动设备和桌面设备上…

现代计算不会在 80x25 控制台窗口中进行。它发生在具有丰富用户界面的手机,平板电脑和台式机上。难道您不应该在所有这些位置使用Python,并利用这些平台的独特功能吗?

…行为本身。

最终用户不必关心他们的工具是用什么语言编写的。这首先要看和表现得像完全原生的工具。本机外观、本机行为,以本机应用的交付方式提供。为什么你的Python工具不能像原生工具一样适合?在这里插入图片描述
BeeWare 官方链接:https://beeware.org/

邮件发送

提示:使用python内置模块–smtplib和email进行邮件发送。其中smtplib模块负责发送邮件,而email模块负责构造邮件内容。

  • 必须要先开启邮箱邮箱授权码哦!比如:QQ邮箱开启IMAP、SMTP服务;确保要开启@
    在这里插入图片描述

源码分享

资料:直接上代码,话不多说 ~

"""
My first application
"""

from email.mime.text import MIMEText
import toga
import datetime
import smtplib
from toga.style import Pack
from toga.style.pack import COLUMN, CENTER


class HelloWorld(toga.App):

    def __init__(
            self,
            formal_name=None,
            app_id=None,
            app_name=None,
            id=None,
            icon=None,
            author=None,
            version=None,
            home_page=None,
            description=None,
            startup=None,
            windows=None,
            on_exit=None,
            factory=None,
    ):
        super().__init__(formal_name, app_id, app_name, id, icon, author, version, home_page, description, startup,
                         windows, on_exit, factory)
        self.content = None
        self.to_email_address = None
        self.headers = None
        self.title_name = None
        self.main_box = None

    def startup(self):
        """
        Construct and show the Toga application.

        Usually, you would add your application to a main content box.
        We then create a main window (with a name matching the app), and
        show the main window.
        """
        self.main_box = toga.Box(style=Pack(direction=COLUMN))
        self.to_email_address = toga.TextInput(placeholder='请输入邮箱地址...', style=Pack(padding_top=10))
        self.title_name = toga.TextInput(placeholder='请输入邮箱标题...', style=Pack(padding_top=4))
        self.content = toga.MultilineTextInput(placeholder='请输入邮箱内容...', style=Pack(padding_top=4))
        self.main_box.add(
            toga.Label('发送邮箱', style=Pack(text_align=CENTER, padding_top=5)),
            self.to_email_address,
            self.title_name,
            self.content,
            toga.Button('发送', style=Pack(padding_top=5), on_press=self.send_email)
        )
        self.main_box.style.update(padding=10)
        self.main_window = toga.MainWindow(title='阿凡达v1.0')
        self.main_window.content = self.main_box
        self.main_window.show()

    # @property
    def send_email_method(self, msg_from, password_, msg_to, msg_head, content_):
        """
        邮箱发送方式
        :return:
        """
        msg = MIMEText(content_)
        msg['subject'] = msg_head
        msg['From'] = msg_from
        try:
            s_ = smtplib.SMTP_SSL('smtp.qq.com', 465)
            s_.login(user=msg_from, password=password_)
            s_.sendmail(msg_from, msg_to, msg.as_string())
            msg = '邮件发送成功'
        except Exception as e:
            msg = str(e)
        finally:
            s_.quit()
        return msg

    def send_email(self, widget):
        msg_from_self = 'xxxxx@qq.com'  # 邮箱账号,比如:xxx_qq.com
        msg_to_self = self.to_email_address.value
        msg_head_self = self.title_name.value
        password_self = 'xxxxxxx'  # 邮箱授权码,注意:不是邮箱密码哦!
        if not msg_to_self:
            self.main_window.info_dialog('温馨提示', '邮件地址不能为空 ~')
            return
        now_runtime = datetime.datetime.now().strftime('%Y-%H-%D %H:%M:%S')
        content_self = '发送时间' + now_runtime + ',' + self.content.value
        try:
            self.send_email_method(msg_from_self, password_self, msg_to_self, msg_head_self, content_self)
            self.main_window.info_dialog('温馨提示', '邮件发送成功!')
        except smtplib.SMTPException as e:
            self.main_window.error_dialog('温馨提示', '邮件发送失败 ~')


def main():
    return HelloWorld()

@ 最后打包成安卓平台APP使用

  1. 创建应用的安卓框架:briefcase create android
    在这里插入图片描述回车后;输入:y,创建安卓平台环境。

  2. 接着我们编译程序,构建安卓应用:briefcase build android
    在这里插入图片描述

  3. 打包安卓应用:briefcase package android
    在这里插入图片描述

  4. 最后,运行安卓apk文件:安装至手机上哦 ~
    打包后的文件路径为:在这里插入图片描述
    app-debug.apk文件就是我们需要的软件了 !

运行效果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 别忘记点个赞哦 ~
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:40:22  更:2022-09-21 00:42:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 5:24:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码