Я пытаюсь отправить этот код по электронной почте с вложением из 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
}