- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们目前使用 TFS 作为支持票证的票证系统。我编写了下面的代码,以便用户可以将电子邮件转储到文件夹中,然后访问网页以提交表单并创建 TFS 支持票证并将其分配给用户。目标是在提交表单并创建支持票证后从文件夹中删除电子邮件。
我遇到的问题是,当我在创建 TFS 支持票证后尝试删除电子邮件时,它会删除一些文件,但随后卡在最后一个文件上并显示以下错误消息。
“PermissionError:[WinError 32]该进程无法访问该文件,因为该文件正在被另一个进程使用:‘C:\Users\b4bw3\Documents\Python\simple-salesforce\Email\Delete_Me1.msg'"
如果我删除创建 TFS 票证的代码部分,那么它将重命名电子邮件并在按预期完成后将其删除。看来是 TFS 挂断了。我很困惑,需要帮助。
有什么想法吗?顺便说一句,这是我第一次尝试 Python,所以要温柔。 :)
'''
# -*- coding: utf-8 -*-
import extract_msg
import cgi
import json
from tfs import TFSAPI
import os, sys
import requests
import glob
import cgitb
cgitb.enable()
form = cgi.FieldStorage()
associate = form.getvalue('associate')
login = json.load(open('login.json'))
personal_access_token = login['tfs_login']
client = TFSAPI("https://url/", project="LoanSystems/", pat=personal_access_token)
os.chdir('C:\\Users\\b4bw3\\Documents\\Python\\simple-salesforce\\Email')
def e2tfs():
associate = form.getvalue('associate')
i=1
for file in os.listdir():
src = file
dst = "Delete_Me"+str(i)+".msg"
os.rename(src,dst)
msg = extract_msg.Message(dst)
msg_sender = msg.sender
# msg_date = msg.date
msg_subj = msg.subject
msg_message = msg.body
i+=1
fields = {'System.Title' : 'E2TFS: {}'.format(msg_subj),
'Microsoft.VSTS.CMMI.Symptom': 'Body: {}'.format(msg_message),
'Microsoft.VSTS.TCM.ReproSteps': 'TBD',
'Regions.Custom.DocumentationArea': 'Unknown',
'Regions.Custom.Application': 'nCino',
'Regions.Custom.Channel': 'Email',
'Microsoft.VSTS.CMMI.FoundInEnvironment': 'Production',
'Regions.Custom.ImpactedAssociate': 'Sender: {}'.format(msg_sender),
'Regions.Custom.Associate_Role': 'ALL USERS',
'Regions.Custom.BusinessGroupsImpacted2': 'All Business Groups',
'AFS.phase.dev': 'ALL USERS',
'Regions.Custom.PriorityCustomField': 'High',
'Regions.Custom.CaseOwner': associate
}
client.create_workitem('Support Ticket', fields=fields)
query_tfs = "SELECT [System.Id], [System.Title] FROM workitems WHERE [System.CreatedDate] = @today AND [System.CreatedBy] = @me AND [System.WorkItemType] = 'Support Ticket'"
wiql = client.run_wiql(query_tfs)
# Get all found workitems
workitems = wiql.workitems
tfs_number = workitems[-1]['Id']
print(f"Support Ticket {tfs_number} was created.\n")
#Create a link to the Support Ticket
url = 'https://sfdctfs/tfs/LoanSystems/SalesForce%20COE/_workitems/edit/' + str(tfs_number)
print("<a target=_blank href=\"" + url + "\"> Click Here to View in a New Tab</a></br></p>\r\n")
filelist = glob.glob('C:\\Users\\b4bw3\\Documents\\Python\\simple-salesforce\\Email\\*.msg')
for files in filelist:
# print(f'{files} to be removed\n')
os.remove(files)
# print(f'{files} file was removed\n')
print("Content-type:text/html\r\n\r\n")
print("<html>")
print("<head>")
print("<title>Email to TFS</title>")
print("</head>")
print("<body>")
print("<h2>Email to TFS</h2> <br />")
print('<a href=\"http://localhost:8000/cgi-bin/case.py\">Click here</a> if you need to create a "Support Ticket" from a "Case Assignment."<br /><br />')
print("1. Drag and drop the email(s) to the designated folder.<br />")
print('2. Select an Associate below to assign as the "Case Owner" on the "Support Ticket(s)."<br />')
print('3. Click the "Submit" button to generate a "Support Ticket(s)" in TFS. <br /><br />')
print("<form action =\"/cgi-bin/template.py\">")
print("Associate: <select name=\"associate\"> <br /> ")
print("<option value=\"--None--\">--None--</option>")
print("<option value=\"April\">April</option>")
print("<option value=\"Mac\">Mac</option>")
print("<option value=\"Michael\">Michael</option>")
print("<option value=\"Chris\">Chris</option>")
print("<input type = \"submit\" value = \"Submit\">")
print("</form><br />")
print("</body>")
print("</html>")
if associate != None:
e2tfs()
print("<i>**Remember to remove the emails out of the directory when you're done.</i>")
'''
我确实尝试在 e2tfs() 方法的底部添加 close(),但收到以下错误:
Python 脚本中出现问题。以下是导致错误的函数调用序列(按发生顺序排列)。
() 中的 C:\Users\b4bw3\Documents\Python\simple-salesforce\cgi-bin\template2.py
70 print("</html>")
71 if associate != None:
=> 72 e2tfs()
73 print("<i>**Remember to remove the emails out of the directory when you're done.</i>")
74
e2tfs = e2tfs() 中的 C:\Users\b4bw3\Documents\Python\simple-salesforce\cgi-bin\template2.py
40 for files in filelist:
41 print(f'{files} to be removed\n')
=> 42 files.close()
43 os.remove(files)
44 print(f'{files} file was removed\n')
files = r'C:\Users\b4bw3\Documents\Python\simple-salesforce\Email\Delete_Me1.msg', files.close 未定义AttributeError:“str”对象没有属性“close” args = ("'str'对象没有属性'close'",) with_traceback =
'''
filelist = glob.glob('C:\\Users\\b4bw3\\Documents\\Python\\simple-salesforce\\Email\\*.msg')
for files in filelist:
print(f'{files} to be removed\n')
files.close()
os.remove(files)
print(f'{files} file was removed\n')
'''
最佳答案
看来这是 msg-extractor 的当前错误。我找到了下面的链接,其中详细解释了。
https://github.com/mattgwwalker/msg-extractor/issues/85?_pjax=%23js-repo-pjax-container
我将以下代码行添加到我的方法的末尾,它的工作方式就像一个魅力。
msg.close()
关于python - 如何使用 os.remove() 删除所有电子邮件文件?通过电子邮件发送至 TFS 票证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59740319/
我已经编写了一些 C 代码来连接到基于 Kerberos 的 LDAP 服务器。这一切都很好,但目前,它每次连接时都会生成一个新的 TGT,而不是使用默认凭证缓存中的那个(假设它已经存在)。 我研究过
我想创建一张带有内联图像的工单,但无法通过它。我正在使用具有粘贴屏幕捕获图像的富文本,内容类似于 "
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 7 年前。 Improv
没有这个功能似乎有点愚蠢。我觉得我忽略了一些显而易见的事情,但我无法成功通过 Google 搜索到任何答案。 最佳答案 @LyndenShields 的答案似乎不再有效。 目前(2015 年 3 月
我正在使用此类 json 请求代表用户(从移动应用程序)创建 Zendesk 票证: {"ticket": {"subject": "Subject", "comment": { "body": co
为什么必须使用票证来避免多次 SSL 握手。是否不可能使用 HTTP 持久(保持事件)连接并在单个 SSL session 中发送多个 GET... 请求?例如,Apache 中有超时,但它可以重新配
我已经在 Windows 域中获得授权,并且想要获取我的 Kerberos 票证的缓存。从 Windows 命令行我可以获得票证的元数据(但不是缓存本身): klist tickets 我需要缓存使用
我在 RStudio 中通过 JDBC 建立了 hive 连接,没有问题,我在 Tools [user@server ~]$: kinit > > Password for user@domain:
有没有办法在 Azure 逻辑应用程序上获取一组票证,而不是通过 key 仅获取一张票证? 我需要获取一个月内创建的所有票证,然后使用循环来检查哪一个票证包含添加评论所需的数据。 最佳答案 感谢@Sk
是否有人使用 LogicNets 等专家系统研究过自动分类和/或自动解决 Jira 票证? 目标不是完全自动化所有故障单,只是减少自动解决简单故障单所需的工作量,并使支持工程师能够专注于更复杂的问题。
我需要一个postdatable Kerberos ticket在我的 Java 应用程序中。但我在GSSContext接口(interface)中没有找到任何方法。 Java 不支持此 Kerber
我已经使用 Python's SSL module 在客户端和服务器之间建立了一个简单的 TLS 1.2 session (在引擎盖下运行 LibreSSL 2.2.7)并且想知道 session 票
我们有一个 WCF 客户端,使用 HttpTransportSecurity,所以通信使用 TLS。 Starting from Windows 8 ,底层客户端实现宣传对 TLS session 票
我有一个 Hadoop 集群,它使用公司的 Active Directory 作为 Kerberos 领域。节点和最终用户 Linux 工作站都是 Ubuntu 16.04。它们使用 PowerBro
我正在使用此 Jira API 创建票证:https://developer.atlassian.com/cloud/jira/platform/rest/#api-api-2-issue-post
作为一个更大项目的一部分,我收到了嵌入在某些 XML 中的 Kerberos 票证,并且需要确定它们是否对服务器上的 ktab 有效。 我一直在调查 'Authen::Krb5'和 'Authen::
我想知道 Jira 是否可以根据解析 SVN 提交并找到“已修复”或与 Jira Id 结合的其他一些标志来将票证状态更新为“已修复”?看起来 Jira svn 插件会列出包含特定票证 ID 的提交,
我目前有一对基于 OWIN 的服务,每个服务都对同一组用户使用 OAuth 身份验证。我打算隔离授权服务器(即 token 端点)并以某种方式配置我的两个服务以接受此 token 。我认为这将涉及我所
我有一个 Linux 服务器,使用 Kerberos 进行用户身份验证,并使用 AFS 进行用户主目录。当我使用可转发的 Kerberos 票证登录计算机时,(我想)PAM 也会处理我的 AFS 身份
缺乏关于这个主题的文档,再加上我在各个方面都在学习曲线上苦苦挣扎,这让我真的不知道从哪里开始。如果可能的话,我需要使用 C# 来完成这项工作。对于这个问题的含糊不清,我深表歉意,但我真的迷路了。我想要
我是一名优秀的程序员,十分优秀!