Spaces:
Runtime error
Runtime error
import streamlit as st | |
import smtplib | |
from email.mime.text import MIMEText | |
# 添加标题 | |
st.title('User Study') | |
# 添加问题和选项 | |
question_1 = st.text_input('question 1:') | |
option_1_1 = st.checkbox('option 1', key='question_1_option_1') | |
option_1_2 = st.checkbox('option 2', key='question_1_option_2') | |
question_2 = st.text_input('question 2:') | |
option_2_1 = st.checkbox('option 1', key='question_2_option_1') | |
option_2_2 = st.checkbox('option 2', key='question_2_option_2') | |
# 显示提交按钮 | |
submit_button = st.button('submit') | |
# 创建一个字典来存储用户答案 | |
user_answers = {} | |
def send_email(user_data): | |
# 邮件配置 | |
sender_email = 'BachelorThesisT@outlook.com' | |
receiver_email = 'taijunzhe@gmail.com' | |
subject = '用户数据' | |
message = format_user_data(user_data) | |
# 创建 MIMEText 对象 | |
msg = MIMEText(message) | |
msg['Subject'] = subject | |
msg['From'] = sender_email | |
msg['To'] = receiver_email | |
# 发送邮件 | |
try: | |
with smtplib.SMTP('smtp.office365.com', 587) as smtp: | |
smtp.starttls() | |
smtp.login('BachelorThesisT@outlook.com', '1111122222t') | |
smtp.send_message(msg) | |
print('邮件发送成功') | |
except smtplib.SMTPException as e: | |
print('邮件发送失败:', str(e)) | |
def format_user_data(user_data): | |
# 格式化用户数据为邮件内容 | |
formatted_data = '' | |
for key, value in user_data.items(): | |
formatted_data += f'{key}: {value}\n' | |
return formatted_data | |
# 处理提交按钮的点击事件 | |
if submit_button: | |
# 存储用户的答案 | |
user_answers['question 1'] = { | |
'option 1': option_1_1, | |
'option 2': option_1_2 | |
} | |
user_answers['question 2'] = { | |
'option 1': option_2_1, | |
'option 2': option_2_2 | |
} | |
# 打印用户的答案 | |
st.write('提交的答案是:') | |
for question, options in user_answers.items(): | |
st.write(question) | |
for option, value in options.items(): | |
if value: | |
st.write(f'- {option}') | |
# 模拟用户数据 | |
user_data = user_answers | |
# 发送邮件 | |
send_email(user_data) | |
# 显示感谢信息或其他处理 | |
st.write('谢谢参与调查!') | |