powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прикрепить к письму файл и отправить.
3 сообщений из 3, страница 1 из 1
Прикрепить к письму файл и отправить.
    #35151429
ГР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите прицепить к письму файл хранящийся в БД

set s=##class(%Net.SMTP).%New()
set s.smtpserver="..."
set m=##class(%Net.MailMessage).%New()
set m.From="..."
do m.To.Insert("...")
set m.Subject="Test"
set m.Charset="iso-8859-1"
set status=m.TextData.Write("This is the main body.")

s rs=##class(%ResultSet).%New()
d rs.Prepare("select * from Files.Files")
d rs.Execute()
while rs.Next() {
s attach=##class(%Net.MailMessagePart).%New()
s stream=##class(Files.Files).%OpenId(rs.Get("ID"))
d attach.BinaryData.CopyFrom(stream.FileData)
s attach.Charset=stream.FilesText.GetAttribute("CharSet")
s attach.FileName="1.rar"
d m.Parts.SetAt(attach,m.Parts.Count()+1)
s m.IsMultiPart=1
}
d s.Send(m)

Сообщение приходит с прицепом, но прикрепленные файлы пустые, 0 байт...
Можно ли вообще так делать? или сохранять файл на диск и только потом цеплять?
...
Рейтинг: 0 / 0
Прикрепить к письму файл и отправить.
    #35152111
Сашок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я добавлял файл к письму, используя AttachFile. Файл был временный и создавался в нужном формате по данным из cache'.
Возможно в Вашем случае не хватает
Код: plaintext
set attach.IsBinary= 1 
Еще можно проверить после do attach.BinaryData.CopyFrom(...) размер скопированного файла attach.BinaryData.FileBinarySize(). SetAt() также возвращает статус, его можно тоже проверить.
...
Рейтинг: 0 / 0
Прикрепить к письму файл и отправить.
    #35152761
ГР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, set attach.IsBinary=1 не хватало. Видать глаз замылило поздно вечером когда код метода AttachFile изучал. (

Обнаружилось походу что ломаются длинные имена файлов, при разбивке заголовков (по 77 символов?). Ставится лишний $c(13,10) перед именем файла.
Такая вот маленькая неприятная фича.

w $zv
Cache for Windows (Intel) 5.2.3 (Build 710) Tue Dec 12 2006 10:09:36 EST
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Прикрепить к письму файл и отправить.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]