При пересылке ломается файл

Xalet

Well-Known Member
08.08.2008
410
0
#1
При пересылке на почту(не лотусовскую) прикрепленный файл ломается.

На форме есть ричтекст поле, в котором прикреплен файл. Скриптом высылаю его по нужному адресу. Если письмо идет на лотусовскую почту, то файл открывается нормально. Если уходит на другие(gmail, mail.ru и т.д.), то файл присылается сломаным(реально теряется где-то пара бит).

Код собственно:

Код:
	Dim nitem As NotesRichTextItem
Dim rtitem As NotesRichTextItem
Set nitem = doc.GetFirstItem("rtfGeneratedNotice")
Set newDoc =db.CreateDocument
Set rtitem = New NotesRichTextItem(newDoc,"Body")	
rtitem.IsEncrypted = False
Call rtitem.AppendText("Какой-то текст")
Call rtitem.AddNewLine(1)
Call rtitem.AppendRTItem(nitem)
newDoc.Subject = "Какой-то текст"
newDoc.SendTo = email
Call newDoc.Send( False )
Есть какие-нибудь мысли, почему файл портится? И почему только при пересылке на внешние почты?
 
K

Klido

Гость
#2
вопрос скорее в админскую ветку..

на все внешние адреса или на некоторые?
домино вовне само шлет или релей есть?
 

Xalet

Well-Known Member
08.08.2008
410
0
#3
вопрос скорее в админскую ветку..

на все внешние адреса или на некоторые?
домино вовне само шлет или релей есть?
Хмм... Но из стандартной почтовой базы всегда нормально все отсылается. Или это все равно к админам вопрос?
 
N

Nalula

Гость
#6
а если попробовать не добавлять, а копировать?
т.е.

Код:
Set nitem = doc.GetFirstItem("rtfGeneratedNotice")
Call nitem.CopyItemToDocument( newDoc, "Body" )
 

NetWood

Well-Known Member
Lotus team
17.04.2008
371
16
#8
Это, конечно, бубны. Попробуй не использовать Call newDoc.Send.
Я его не люблю вообще. Сразу делай док в mailbox с соответствующими полями и сохраняй.
Может выпрямится...

Типо так:
' кусок агента LS. после отправки WEB мессаджа юзер получает себе копию на майл
Код:
	Set db = s.CurrentDatabase	
Set ctx=s.DocumentContext ' по WQS вытаскиваем web потроха дока

Set dbm = New NotesDatabase( db.Server, "mail.box" ) 
feedback=profile.GetItemValue("EmailFrom")(0) ' адрес майлера
email=profile.GetItemValue("EmailSendTo")(0) ' обратный адрес 

Set mail= New NotesDocument(dbm) 
'Call ctx.CopyAllItems(mail, True) ' это если со всем потрохами

Set item = ctx.GetFirstItem( "Content" ) 
Call item.CopyItemToDocument( mail , "Body" ) ' скопировать контент в боди письма

Call mail.ReplaceItemValue("Form","Memo")
Call mail.ReplaceItemValue("Subject", "FEEDBACK / "+ctx.Type(0)+": "+ ctx.Subject (0))
''Call mail.ReplaceItemValue("From", feedback)
''Call mail.ReplaceItemValue("ReplyTo", feedback)
Call mail.ReplaceItemValue("From", ctx.Pseudo(0) +"<"+ctx.Email (0)+">")
Call mail.ReplaceItemValue("ReplyTo", ctx.Pseudo(0) +"<"+ctx.Email (0)+">")	
Call mail.ReplaceItemValue("Recipients", email)
Call mail.ReplaceItemValue("SendTo",email)
Call mail.ReplaceItemValue("PostedDate",Now) ' не обязательно, но роутер любит
Call mail.Save (True,True) ' сохранить в mail.box для отправки
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#9
Хмм... Но из стандартной почтовой базы всегда нормально все отсылается. Или это все равно к админам вопрос?
Из почтовой базы нормально отправляется, потому что при отправке применяются сразу же MIME-настройки клиента.
Если отправка скриптом, то берутся настройки из документа конфигурации (сервера).
Поглядите, может быть это поможет..
---
PS. Комментарий модератора (OKEN):
Привожу здесь предложенную по ссылке настройку:
Configuration Settings
Mime
Conversion Options
Outbound
Message content: from Notes to Plain Text and HTML
 

Xalet

Well-Known Member
08.08.2008
410
0
#12
примечательно, что её никак выставлять и не надо - по-умолчанию должно работать прекрасно... ни разу туда не заглядывал даже
Ну это если у админов не маки и они под себя не выставили :) На дефолтные, кстати, и вернул.
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#13
Спасибо. Помогло. Настройка кодировки для приложений была плохо выставлена.
Вот и здорово! :)
Я, как только ставлю новый сервак, так первым делом отключаю все ненужные задачи, а потом бегов настройки MIME и кодировки корректировать, чтобы повторно на грабли не наступать...)))

P.S. Модераторам: тема, по моему админская)
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#15
я за годы не видел граблей не разу - вот те, кто туда бежит сразу - эти грабли и создают! :)
Я за последние годы ни разу таких проблем не встречал именно потому, что всегда иду и ставлю нужные настройки, а раньше, когда серваки ставили другие, проблем было... :)
Если менять не зная, то проблемы будут почти всегда; естественно - надо знать что делаешь.

Каждый говорит на основе своего опыта. Скажи, в ИП где-то была пересылка доков в BackEnd'е?
По умолчанию и $SMTPKeepNotesItems не выставлена. Начинаешь сталкиваться, когда появляется опыт расшибания лба...
 
K

Klido

Гость
#16
где-то была пересылка доков в BackEnd'е
на каждом углу :) только доки зачем пересылать-то, когда есть ЛИНК??? или ты имеешь ввиду свой мегаподход по пересылке доков между базами вместо репликации?

По умолчанию и $SMTPKeepNotesItems не выставлена
а вот тут - сорри, внуренняя почта и SMTP - вещи разные....
я всегда работал на закрытые системы - вовне никаких пересылок...

вот у Топикастера трабл - браузер не открывает - в моем опыте тоже не было браузеров :) клиентская почта работает как часики...
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#17
на каждом углу :what?: только доки зачем пересылать-то, когда есть ЛИНК???
а вот тут - сорри, внуренняя почта и SMTP - вещи разные....
я всегда работал на закрытые системы - вовне никаких пересылок...
О том и говорю.
Простой пример: отправка исходящего дока из нашей "Канцелярии" во внешний мир, вот тогда и вылазит всё это добро. И, если док порубило, уже неважно, какой клиент ТАМ будет ЭТО открывать... Это здесь браузер, т.е. частный случай. У нас (вернее у клиентов) такое было не раз и с Notes-почтой.