Outlook邮件体内容被覆写问题:如何让脚本追加内容而非覆盖?
邮件体内容被覆写的解决方法
问题描述
需求:编写脚本实现以下逻辑:先检查列表suspended_stat是否包含元素,若有则向Outlook邮件体写入对应内容;再检查列表outlook_stat_final是否包含元素,若有则向邮件体写入对应内容。
当前问题:执行后邮件体仅显示最后一段内容(TEXT_2),suspended_stat对应的内容被覆写,如何避免这个问题?
原代码:
if suspended_stat: mail_item.Body = greet + msg + "\n".join(suspended_stat) + '\t\n \t\n' "text_1. \t\n \t\n" else: mail_item.Body = greet + "No activity detected" '\t\n \t\n' if outlook_stat_final: mail_item.Body= "\n".join(outlook_stat_final) + "\t\n \t\n" + signature else: mail_item.Body = "TEXT_2. \t\n\t\n" + signature
解决方案
问题核心是每次给mail_item.Body赋值时都直接覆盖了原有内容,而不是追加。只需把第二部分的赋值方式从=改为+=,同时修正原代码里的字符串拼接语法错误:
修正后的代码:
# 先处理suspended_stat部分,初始化邮件体 if suspended_stat: mail_item.Body = greet + msg + "\n".join(suspended_stat) + '\t\n \t\ntext_1. \t\n \t\n' else: mail_item.Body = greet + "No activity detected" + '\t\n \t\n' # 追加outlook_stat_final相关内容,避免覆盖 if outlook_stat_final: mail_item.Body += "\n".join(outlook_stat_final) + "\t\n \t\n" + signature else: mail_item.Body += "TEXT_2. \t\n\t\n" + signature
关键说明
- 使用
+=运算符替代=,实现内容追加而非覆盖原有邮件体内容 - 原代码第一部分中
'\t\n \t\n' "text_1. \t\n \t\n"缺少字符串连接符+,已一并修正,否则会引发语法错误
内容的提问来源于stack exchange,提问作者Komal
相关产品推荐
相关产品推荐

