Отправка электронной почты с использованием классического ASP с вложенным изображением - PullRequest
2 голосов
/ 07 апреля 2010

я делаю NewsLetter с помощью редактора wysiwyg ... он позволяет мне загружать путь к изображению, а путь к изображению хранится в каталоге загрузки. Нет. Когда я получаю это изображение, используя его, работает на веб-сайте ... значение редактора сохраняетсяв примере базы данных <br> привет

<img src="upload/acb.gif">

<br>

Здравствуйте

Я отправляю электронное письмо, и информация об этом электронном письме поступает из базы данных, и эта информация отправляется посетителю

Он получает все текстовые значения, но не может видеть изображение

, поэтому предложите мне, что делать ..?

Ответы [ 5 ]

3 голосов
/ 15 апреля 2010

Если вы отправляете электронные письма, используя CDOSYS.Message, вы можете легко отправить полную веб-страницу со встроенными изображениями, используя метод Message.CreateMHTMLBody (url).

Dim Message
Set Message = CreateObject("CDOSYS.Message")

Message.From = "from@email.org"
Message.To = "to@email.org"
Message.CreateMTHMLBody "http://yourserver.org/email.html"
Message.Send()
1 голос
/ 30 августа 2012

Недавно я очистил некоторый код, который лежал вокруг, чтобы сделать это, и добавил его в сеть как Gist на github; надеюсь, это все еще кому-то поможет!

Отправка встроенных изображений с помощью CDOSYS

В этом решении используется CDO (CDOSYS / CDO.Message) с «AddAttachment» и ручное управление свойствами вложений, чтобы их можно было использовать из HTML-кода электронной почты и чтобы они не отображались как отдельно загружаемые вложения в сообщении клиент.

Использование очень простое, просто укажите ссылки на локальный путь (на компьютере, на котором выполняется код) в HTML сообщения, например:

Some Image: <img src="<EMBEDDEDIMAGE:C:\test.jpeg>" />

Код выберет имя файла, добавит файл в качестве вложения к сообщению и заменит соответствующую часть HTML сообщения внутренней ссылкой на это вложение.

1 голос
/ 07 апреля 2010

Вы должны добавить URL-адрес сайта в источник img

image, поскольку пользователь не обращается к вашему сайту из своего почтового ящика.

Для этого вы можете установить "http://www.sitename.com/" как ключ в web.config и использовать его в своих письмах.

Это точно решит вашу проблему. Удачного кодирования !!!!!!!!!!!!!

0 голосов
/ 01 сентября 2012

Вы бы использовали AddRelatedBodyPart:

Использование встраивания Создайте массив и передайте его в функции «SendMail» как параметр Использовать в теле письма, например

Dim arrRelatedBodyPart(1)
arrRelatedBodyPart(0) = Server.MapPath(".") & "/images/barcode/bar_blk.gif"
arrRelatedBodyPart(1) = Server.MapPath(".") & "/images/barcode/bar_wht.gif"

Пример

For i = 0 To UBound(arrRelatedBodyPart)
    Dim strPathAndFileName: strPathAndFileName = arrRelatedBodyPart(i)
    Dim strFileName: strFileName = GetFileName(arrRelatedBodyPart(i), "/")
    '.AddRelatedBodyPart strPathAndFileName, strFileName, cdoRefTypeId

    Set objCDOBodyPart = .AddRelatedBodyPart(strPathAndFileName, strFileName, 1)
    objCDOBodyPart.Fields.Item("urn:schemas:mailheader:Content-ID") = "<" & strFileName & ">"
    objCDOBodyPart.Fields.Update
Next
0 голосов
/ 07 апреля 2010

Что вы используете для отправки электронного письма, в прошлом я имел успех при использовании AspEmail: http://www.aspemail.com/

Здесь объясняется, как отправлять встроенные изображения: http://www.aspemail.com/manual_04.html

Однако вам придется установить его на свой сервер, если вы используете общий хостинг, это может быть проблемой, если вы используете свой собственный сервер довольно просто!

...