smtp sendmessage с использованием tcl не работает на windows, не удается открыть crypt.dll - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь отправить этот код по электронной почте с вложением из TCL 8.6. Хотя этот код работает с вложением и без него в linux, он не дает следующего сообщения на windows при попытке вложить файл 400: невозможно открыть сообщение crypt.dll. Пробовал на windows 7, 8.1 и 10. Есть идеи? Я ценю вашу помощь. Google не дает никаких полезных подсказок по crypt.dll

package require tls
package require smtp
package require mime

proc send_email {to subject body { attachment ""} } {
    set opts {}

    lappend opts -servers "smtp.something.com"
    lappend opts -ports 587
    lappend opts -username "someone@something.com"
    lappend opts -password "password"
    lappend opts -header [list "Subject" $subject]
    lappend opts -header [list "From" "xyz@gmail.com"]
    lappend opts -header [list "To" $to]

    if { $attachment == "" } {
        set mime_msg [mime::initialize -canonical "text/plain" -string $body]
    } else {
        set textT    [mime::initialize -canonical text/plain -string $body]
        set attT     [mime::initialize -canonical "name=\"[file tail $attachment]\"" -file $attachment]
        set mime_msg [mime::initialize -canonical multipart/mixed -parts [ list $textT $attT ]]
    }

    smtp::sendmessage $mime_msg {*}$opts -usetls 1
    mime::finalize $mime_msg -subordinates all
}
...