1

Тема: VBS Вставка в почтовое сообщение картинки из атрибута AD

Итак, я могу отправлять сообщение с картинкой внутри помощью скрипта:

Set Message = CreateObject("CDO.Message") 
Message.To = "to@mail.com"
Message.From = "from@mail.com"
Message.Subject = "Изменение фотографии в Active Directory"
Message.BodyPart.Charset = "windows-1251"
Message.AddRelatedBodyPart "C:\photo\123.jpg", "pic", 1
Message.htmlbody = "<HTML><b>Картинка</b><BR><BR>"
Message.htmlbody = Message.htmlbody & "Тест<BR><BR><img src=""pic""></HTML>"
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.com"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
Flds.Update
Message.Configuration = iConf
Message.Send

В Active Directory у каждого пользователя есть атрибут thumbnailPhoto, которй представляет собой фотку в hex формате.
Вопрос основной, как вставить фотку из этого атрибута в тело письма, и можно ли вообще это сделать ?
Вопрос дополнительный, как мне подключится к AD и прочитать этот атрибут.

2

Re: VBS Вставка в почтовое сообщение картинки из атрибута AD

Сразу в письмо не получается вставить картинку, поэтому приходится сейчас делать так
читать атрибут thumbnailPhoto, сохранять его как картинку на жестком диске, и уже вставлять картинку в письмо с диска.

 
Set fso = CreateObject("Scripting.FileSystemObject")
Set objSysInfo = CreateObject("ADSystemInfo")
  Const ADS_NAME_INITTYPE_GC = 3
  Const ADS_NAME_TYPE_NT4 = 3
  Const ADS_NAME_TYPE_1779 = 1
  Const ADS_PROPERTY_CLEAR = 1
  
strName = "DOMAIN\user"

Set objTrans = CreateObject("NameTranslate")
  objTrans.Init ADS_NAME_INITTYPE_GC, ""
  objTrans.Set ADS_NAME_TYPE_NT4, strName
  strUserDN = objTrans.Get(ADS_NAME_TYPE_1779)
  strUserDN = Replace(strUserDN, "/", "\/")
Set objUser = GetObject("LDAP://" & strUserDN)

 Set rs = CreateObject("ADODB.Recordset")
  rs.Fields.Append "temp", 201, LenB(objUser.thumbnailPhoto)
  rs.Open
  rs.AddNew
  rs("temp").AppendChunk objUser.thumbnailPhoto
  rs.Update
  ByteArray2Text = rs("temp")
  rs.Close
  Set rs = Nothing
  thumbnailphoto = ByteArray2Text
  Set jpgFile = FSO.CreateTextFile("c:\photo\12345.jpg", True)
  jpgFile.Write (thumbnailphoto)
  jpgFile.Close

3

Re: VBS Вставка в почтовое сообщение картинки из атрибута AD

Rialto, в принципе нормально, разве что — файл создавать в пользовательском %temp%.

Тут ещё, помнится, были примеры, как вставить картинку в тело письма (кажись, сразу кодируя его в base64, точно не помню) — может быть, и такое сгодится.