解决方案 1 - 使用电子邮件 URL 中的 ID 创建 URL

解决方案 1 - 使用电子邮件 URL 中的 ID 创建 URL

我在工作中使用 Microsoft 电子邮件。我使用网络邮件界面。(我认为这称为 Outlook 365 网络邮件)。我注意到,当您阅读电子邮件时,屏幕顶部会显示一个唯一的 URL。我希望能够将该 URL 复制并粘贴到我的组织软件中(我使用“Checkvist”,这是一个在线大纲,与 Org-Mode 有点相似)。这样我就可以将某些任务链接到某些电子邮件。但是,当我复制 URL 并将其粘贴到新窗口中时,什么也没发生(它会将我带到网络应用程序,但不会打开相关电子邮件)。有人知道使用 URL 转到相关电子邮件的方法吗?

谢谢

答案1

因此今天早上经过反复尝试,我找到了以下方法:

解决方案 1 - 使用电子邮件 URL 中的 ID 创建 URL

首先,要使此功能正常工作,您需要关闭 OWA 中的对话模式,方法是单击邮箱右上角的齿轮,然后在“对话视图”下将其设置为关闭。(这样,当您选择电子邮件时,URL 将为您提供消息/项目 ID,而不是对话 ID。)

然后选择您想要创建链接的电子邮件,URL 将如下所示,但以[MESSAGE_ID]URL 编码格式显示完整的消息 ID。

https://outlook.office.com/mail/inbox/id/[MESSAGE_ID]

复制完整内容[MESSAGE_ID]并插入,如以下 URL 所示:

https://outlook.office.com/owa/?ItemID=[MESSAGE_ID]&viewmodel=ReadMessageItem&path=&exvsurl=1

打开此链接后,您将直接转到电子邮件。

请参阅下面的 powershell 脚本,它将打开一个表单,您将从浏览器复制的 URL 插入第一个文本框并单击“转换”,然后它将返回指向 O365 中的电子邮件的 URL 并清除第一个字段,以便快速连续转换几个,并且窗口应该保持在最顶部。这仍然需要将转换模式设置为关闭,如第 1 段所述。我想补充一点,这是使用 PoshGUI 编辑器非常快速完成的,并且锚点等尚未设置,因此扩大窗口可能不会产生预期的效果。

Function Convert-URL{
Param(
    [String]$O365_URL
)
    $inputURL = $O365_URL
    $returnURL = "https://outlook.office.com/owa/?ItemID=" + ($inputURL | Split-Path -Leaf) + "&viewmodel=ReadMessageItem&path=&exvsurl=1"
    $returnURL
}

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Form                            = New-Object system.Windows.Forms.Form
$Form.ClientSize                 = '735,80'
$Form.text                       = "O365 URL Convertor"
$Form.TopMost                    = $true

$TextBox1                        = New-Object system.Windows.Forms.TextBox
$TextBox1.multiline              = $false
$TextBox1.width                  = 446
$TextBox1.height                 = 20
$TextBox1.location               = New-Object System.Drawing.Point(150,5)
$TextBox1.Font                   = 'Microsoft Sans Serif,10'

$Label1                          = New-Object system.Windows.Forms.Label
$Label1.text                     = "Insert URL"
$Label1.AutoSize                 = $true
$Label1.width                    = 25
$Label1.height                   = 10
$Label1.location                 = New-Object System.Drawing.Point(21,12)
$Label1.Font                     = 'Microsoft Sans Serif,10'

$Label2                          = New-Object system.Windows.Forms.Label
$Label2.text                     = "Returned URL"
$Label2.AutoSize                 = $true
$Label2.width                    = 25
$Label2.height                   = 10
$Label2.location                 = New-Object System.Drawing.Point(21,38)
$Label2.Font                     = 'Microsoft Sans Serif,10'

$TextBox2                        = New-Object system.Windows.Forms.TextBox
$TextBox2.multiline              = $false
$TextBox2.width                  = 446
$TextBox2.height                 = 20
$TextBox2.location               = New-Object System.Drawing.Point(150,34)
$TextBox2.Font                   = 'Microsoft Sans Serif,10'

$Button1                         = New-Object system.Windows.Forms.Button
$Button1.text                    = "Convert"
$Button1.width                   = 100
$Button1.height                  = 30
$Button1.location                = New-Object System.Drawing.Point(619,9)
$Button1.Font                    = 'Microsoft Sans Serif,10'

$Form.controls.AddRange(@($TextBox1,$Label1,$Label2,$TextBox2,$Button1))

$Button1.Add_Click({$TextBox2.Text = Convert-URL -O365_URL $TextBox1.Text; $TextBox1.Text = "";})

$Form.ShowDialog()

解决方案 2 - Office 365 Graph API

属性“Weblink”是从“Get-Message”API 请求返回的。

请参阅以下显示此属性的来源:

在响应下您将看到“weblink”属性,URL 的构造与上面的解决方案相同。

https://docs.microsoft.com/en-us/graph/api/message-get?view=graph-rest-1.0&tabs=http

以下链接指向图形浏览器,您可以登录并与图形 API 交互以查看工作示例,登录后,单击左侧窗格中的“获取我的邮件”。这将在您所有电子邮件的右下角返回 API 响应,您将在此窗口中看到为每封电子邮件返回的网页链接。

https://developer.microsoft.com/en-us/graph/graph-explorer

然而,尽管上述方法手动使用不是很实用,但我还是会开始编写脚本/程序来检索 URL。

答案2

您可以通过以下方式获取电子邮件 URL:

  1. 右键单击电子邮件和/或主题并“创建任务”
  2. 切换到待办事项/任务(OWA 界面菜单左下方,复选标记图标)
  3. 点击任务
  4. 右侧信息窗格打开
  5. 复制文本“在 Outlook 中打开”中的链接

这是消息和/或对话的链接。我还没有专门测试过,但它至少可以让你找到你正在寻找的话题的消息。

对于高级使用来说,这可能有点麻烦,但与任务程序的随意集成就可以了。

这确实会在新选项卡中打开消息,这并不理想;但同样,它可能更多是为了记忆/跟进,而不是快速的 GTD 内容。

答案3

以下是使用 Firefox 中的书签小工具获取 CraftyB 解决方案的更简单方法:

在书签工具栏中创建新书签:

添加书签

使用这个 javascript 作为 URL:

javascript:(function() {
window.open('https://outlook.office365.com/owa/?ItemID='
.concat(window.location.href.split("/id/")[1])
.concat('&exvsurl=1&viewmodel=ReadMessageItem')
)
;})()

随意命名,也可以添加关键字:

编辑书签

现在,无论何时您想要创建永久链接,找到相关的电子邮件(以便它在右侧窗格中可见),然后单击书签(或在 URL 栏中输入您的关键字),它将打开一个新选项卡,指向该消息的永久链接 URL。

如果对任何人都有用的话,这个变体将替换当前选项卡:

javascript:(function() {
window.location='https://outlook.office365.com/owa/?ItemID='
.concat(window.location.href.split("/id/")[1])
.concat('&exvsurl=1&viewmodel=ReadMessageItem')
;})()

答案4

一个解决方法类似于右键单击并“创建任务”选项,但可能稍微简单一些,只需标记电子邮件,然后打开 Microsoft To Do,该消息就会出现在已标记的电子邮件列表中。然后,您只需右键单击“在 Outlook 中打开”并复制链接即可。您会注意到,当您单击收件箱中的电子邮件时,URL 与地址栏中显示的 URL 不同。

相关内容