У меня есть класс, который имеет метод для отправки электронной почты, используя HTML. Этот метод включает изображение как вложение в электронное письмо.
И у меня есть форма с полем для расширенного текста, куда пользователи будут прикреплять изображение.
У меня проблема с ним:
- Мне нужно, чтобы изображение показывалось в электронном письме, и оно должно быть в правильном месте. Вложение появляется в начале.
- И другая проблема: метод не определил поле расширенного текста. Поэтому мне нужно знать, как отображать только указанное поле c.
Способ отправки HTML почтой
' Sub to send an email with attachments
Public Sub SendEmailHTMLAttachments()
' General variables
Dim ws As New NotesUIWorkspace
Dim ns As New NotesSession
Dim maildoc As NotesDocument
Dim doc As NotesDocument
Dim body As NotesMIMEEntity
Dim mh As NotesMIMEHeader
Dim mc As NotesMIMEEntity
Dim stream As NotesStream
Dim link As New Link
Set maildoc = ws.Currentdocument.Document
Set doc = ws.Currentdocument.Document
' Dont convert text to rich text
ns.ConvertMIME = False
' Configure the mail
maildoc.Form = "Memo"
maildoc.Subject = me.m_subject
maildoc.SendTo = me.m_sendto
maildoc.CopyTo = me.m_sendtocc
maildoc.blindCopyTo = me.m_sendtobcc
' Create the MIME headers
Set body = maildoc.Createmimeentity
Set mh = body.Createheader({MIME-Version})
Call mh.Setheaderval("1.0")
Set mh = body.Createheader("Content-Type")
Call mh.Setheadervalandparams({multipart/alternative})
' Send the plain text part first
Set mc = body.Createchildentity()
Set stream = ns.Createstream()
Call mc.Setcontentfromtext(stream, {text/plain}, ENC_NONE)
' Now send the HTML part. Order is important!
Set mc = body.Createchildentity()
Set stream = ns.Createstream()
Call stream.Writetext(|<html lang="es">|)
Call stream.Writetext(|<head>|)
Call stream.Writetext(|<meta name="viewport" content="width=device-width, initial-scale=1.0">|)
Call stream.Writetext(|<meta http-equiv="X-UA-Compatible" content="ie=edge">|)
Call stream.Writetext(|</head>|)
Call stream.Writetext(|<body>|)
Call stream.Writetext(|<div style="background-color: #897d7d; border-radius: 0.5em; width: auto; height: 50px;">
<h1 style="color: white; text-align: center; padding: 0.1em;
font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;">| & me.m_header & |</h1>
</div>|)
Call stream.Writetext(|<p>| & me.m_body & |</p>|)
Call stream.Writetext(|<a href="| & link.GetLink() & |" target="_blank"
style="background-color: #A01314; color: white; padding: 14px 25px; text-align: center;
text-decoration: none; display: inline-block; border-radius: 1em;">Link to Form</a>|)
Call stream.Writetext(|</body>|)
Call stream.Writetext(|</html>|)
Call mc.Setcontentfromtext(stream, {text/html;charset="utf-8"}, ENC_NONE)
' Close the stream
Call stream.Close()
' Send it
Call maildoc.Send(False)
Delete link
End Sub
Событие для отправки электронного письма (Кнопка)
Sub Click(Source As Button)
Dim subject As String
Dim header As String
Dim body As String
Dim sendto(1 To 9) As String
Dim sendtocc(1 To 3) As String
Dim sendtobcc(1 To 3) As String
Dim alert As String
Dim flagalert As Boolean
subject = "Form Lotus Notes: Test"
header = "Form Lotus Notes: Test"
body = "This is an example email using <b>HTML</b>."
body = body + "<p>Url: <a href='www.google.es'>Google</a></p>."
sendto(1) = "people"
alert = ""
Dim msj As New Mensaje(subject, header, body, sendto, "", "", alert, False)
Call msj.SendEmailHTMLAttachments
Delete msj
End Sub
Пример, когда я получаю электронное письмо
Что я делаю не так?