Если не ошибаюсь - то проблема состоит в том, что каждое следующее письмо содержит тела сообщений всех предыдущих писем.
Все дело в том, что каждый раз в цикле For ты работаешь не с новым экземпляром richTextItem, а с предыдущим (первоначально сформированнным). Соответственно ты получаешь арифметическую прогресиию
Что можно попробовать поправить.
Я бы например делал так
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim s As New NotesSession
Dim db As NotesDatabase
Dim rtitemA As Variant
Dim rtitemB As Variant
Dim view As NotesView
Dim i As Integer
Dim rtitem As NotesRichTextItem
Dim richStyle As NotesRichTextStyle
Dim tmpDoc As NotesDocument
'---------------------------------------------------------------------------------------------------------
Set uidoc = w.CurrentDocument
Set doc = uidoc.Document
Call uidoc.Save
Set rtitemA = doc.GetFirstItem( "body" )
Set rtitemB = doc.GetFirstItem( "body1" )
Set richStyle = s.CreateRichTextStyle
Set db = s.CurrentDatabase
Set view = db.GetView("Почта")
set tmpDoc = view.getFirstDocument
while not tmpDoc is Nothing
Set rtitem = New NotesRichTextItem(tmpdoc, "Body")
richStyle.Italic = True
richStyle.bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(" ")
Call rtitem.AppendText(tmpDoc.поле_имя_клиента(0))
richStyle.Italic = False
richStyle.bold = False
If ( rtitemA.Type = RICHTEXT And rtitemB.Type = RICHTEXT ) Then
Call rtitem.AppendRTitem(rtitemA)
Call rtitem.AddNewLine(1)
Call rtitem.AppendRTItem( rtitemB)
tmpdoc.SendTo=tmpDoc.поле_email_клиента(0)
Call tmpdoc.Send(False)
End If
set tmpDoc = view.getnextDocument (tmpDoc)
wend
Дальше думаю разберешься