Как проверить, как называется почтовый ящик «Отправленные»? Иногда мне приходится использовать «INBOX.Sent», иногда «Отправлено», Я не могу предположить, что у меня должен быть способ проверить текущее имя.
У вас есть способ проверить это с помощью Чилката?
Почтовые ящики содержат такие флаги, как «\Sent», «\Trash», «\Junk» и т. д., чтобы указать почтовые ящики специального назначения.
См. этот пример: https://www.example-code.com/csharp/imap_find_sent_mailbox.asp
Основной документ протокола IMAP — RFC3501. Раздел 2.3.2 описывает стандартные флаги, с которыми должна работать каждая реализация IMAP. Конечно, использование нестандартных флагов не ограничено...
Наконец я получаю ответ/решение моей проблемы: Я использую Этот пример (PowerShell) Найдите почтовый ящик IMAP «Отправленные»
Вот моя версия:
Add-Type -Path "c:\PS1\ChilkatDotNet48_x64.dll"
$glob = New-Object Chilkat.Global
$success = $glob.UnlockBundle("Anything for 30-day trial")
if ($success -ne $true) {
$($glob.LastErrorText)
exit
}
$status = $glob.UnlockStatus
if ($status -eq 2) {
$("Unlocked using purchased unlock code.")
}
else {
$("Unlocked in trial mode.")
}
$($glob.LastErrorText)
$imap = New-Object Chilkat.Imap
$imap.Ssl = $true
$imap.Port = 993
# connect to server
$success = $imap.Connect("******")
if ($success -ne $true) {
$($imap.LastErrorText)
exit
}
# Login or authenticate in some way..
$success = $imap.Login("******","******")
if ($success -ne $true) {
$($imap.LastErrorText)
exit
}
# Get the list of mailboxes.
$refName = ""
$wildcardedMailbox = "*"
$mboxes = $imap.ListMailboxes($refName,$wildcardedMailbox)
if ($imap.LastMethodSuccess -eq $false) {
$($imap.LastErrorText)
exit
}
# The mailbox with the "/Sent" flag is the "Sent" mailbox.
# Likewise for Junk and Trash..
$i = 0
$("")
$("")
while ($i -lt $mboxes.Count) {
if ($mboxes.GetName($i) -eq "Sent") {
$("Sent mailbox (1): " + $mboxes.GetName($i))
$(" >> mboxes.GetNthFlag(i,0) = " + $mboxes.GetNthFlag($i, 0))
$(" >> mboxes.GetNthFlag(i,1) = " + $mboxes.GetNthFlag($i, 1))
$("")
}
if ($mboxes.HasFlag($i,"\Sent") -eq $true) {
$("Sent mailbox (2): " + $mboxes.GetName($i))
$(" >> mboxes.GetNthFlag(i,0) = " + $mboxes.GetNthFlag($i, 0))
$(" >> mboxes.GetNthFlag(i,1) = " + $mboxes.GetNthFlag($i, 1))
$("")
}
if ($mboxes.HasFlag($i,"\Junk") -eq $true) {
$("Junk mailbox: " + $mboxes.GetName($i))
$(" >> mboxes.GetNthFlag(i,0) = " + $mboxes.GetNthFlag($i, 0))
$(" >> mboxes.GetNthFlag(i,1) = " + $mboxes.GetNthFlag($i, 1))
$("")
}
if ($mboxes.HasFlag($i,"\Trash") -eq $true) {
$("Trash mailbox: " + $mboxes.GetName($i))
$(" >> mboxes.GetNthFlag(i,0) = " + $mboxes.GetNthFlag($i, 0))
$(" >> mboxes.GetNthFlag(i,1) = " + $mboxes.GetNthFlag($i, 1))
$("")
}
$i = $i + 1
}
# Disconnect from the IMAP server.
$success = $imap.Disconnect()
И мои результаты:
Junk mailbox: Junk
>> mboxes.GetNthFlag(i,1)=\HasNoChildren
>> mboxes.GetNthFlag(i,2)=\Junk
Sent mailbox (1): Sent
>> mboxes.GetNthFlag(i,1)=\HasChildren
>> mboxes.GetNthFlag(i,2)=
Вывод: это означает, что иногда Sent следует распознавать по имени, а не по флагу.
кстати. В польской версии ThunderBird этот почтовый ящик имеет другое имя «Wysłane», но расположение: аналогично «imap://[email protected]/Sent».
Поскольку я скриптер/разработчик AutoIt, я рад добавить новую ссылку на официальный пример AutoIt Chilkat: example-code.com/autoit/imap_listMailboxes.asp
Я пытаюсь найти все типы флагов Я прочитал эту документацию tools.ietf.org/html/rfc3501 И я не могу найти список всех возможных флагов Не могли бы вы указать мне такой список?