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()
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'
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使用
-
创建应用的安卓框架:briefcase create android 回车后;输入:y,创建安卓平台环境。 -
接着我们编译程序,构建安卓应用:briefcase build android -
打包安卓应用:briefcase package android -
最后,运行安卓apk文件:安装至手机上哦 ~ 打包后的文件路径为: app-debug.apk文件就是我们需要的软件了 !
运行效果:
|