Что нового

[Данные, строки] Отправка двух и больше файлов на почту

Roman89

Новичок
Сообщения
107
Репутация
3
Всем доброго времени суток!
У меня тут созрел новый вопрос надо которым я пярюсь уже целое утро и не могу додуматься! если кто то подскажет буду крайне благодарен!
Так вот в чем суть:
Есть скрипт отправки письма на почту:
Код:
$SmtpServer = "smtp.mail.ru"            ; адрес SMTP сервера
$FromName = "*****"               ; имя отправителя
$FromAddress = "******" ; адрес отправителя
$ToAddress = "*******"      ; адрес назначения
$Subject = "*******"              ; тема письма
$Body = "******"            ; тело письма (сам текст письма)
$AttachFiles = "C:\boot.ini"; прикреплённые файлы к письму
$Username = "*****"            ; имя пользователя аккаунта, с которого отправляется
$Password = "*******"                     ; пароль аккаунта, с которого отправляется

$BlatArgs = "-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles
;Run (@scriptdir & "\blat.exe " & $BlatArgs, @ScriptDir, @SW_HIDE )
_SendMail($BlatArgs)

Func _SendMail($CMDstring)
    $BlatDLL = DllOpen ("blat.dll")
    Do
        $result=DllCall($BlatDLL,"int","Send","str",$CMDstring)

        Select
            Case $result[0] = 13
                MsgBox(16,"Ошибка. Код ошибки " & $result[0], "Не могу открыть временный файл во временной папке")

            Case $result[0] = 12
                MsgBox(16, "Ошибка. Код ошибки " & $result[0], "Не указаны или не найдены в реестре аргументы -server или -f")

            Case $result[0] = 3
                MsgBox(16, "Ошибка. Код ошибки " & $result[0], "Не могу прочитать файл с текстом письма или приложенный файл")

            Case $result[0] = 2
                MsgBox(16, "Ошибка. Код ошибки " & $result[0], "Почтовому серверу не понравился адрес отправителя; или он отказал нам в подключении; или неверный пароль; или не найден файл с текстом письма")
            Case $result[0] = 1
                MsgBox(16, "Ошибка. Код ошибки " & $result[0], "Не могу открыть SMTP сокет. Проверьте подключение к Интернету; либо неверные аргументы")
            Case $result[0] <> 0
                MsgBox(16, "Ошибка. Код ошибки " & $result[0], "Неизвестная ошибка")
        EndSelect
    Until $result[0] = 0
    MsgBox(16, "нет ошибки.", "Письмо отправлено :-)" & @CRLF)
    DllClose ($BlatDLL)
EndFunc ;

В нем предусмотрено прикрепление к письму одного файла:
Код:
$AttachFiles = "C:\boot.ini"

А как сделать что бы можно было прикрепить к одному письму два и больше файлов?
На пример:
Код:
$AttachFiles2 = "C:\1.ini"
$AttachFiles3 = "C:\2.ini"

Если можно то как ето реализовать?
Заранее большое спасибо всем за ответы!
 

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Код:
$str = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
    With $hMAIL
        .From = "[email protected]"
        .To = "[email protected]"
		.Subject = "TEST"
        .TextBody = "TEST"
        .AddAttachment ("C:\boot.ini")
		.AddAttachment ("C:\boot.ini")
		.AddAttachment ("C:\boot.ini")
    EndWith
    With $hMAIL.Configuration.Fields
        .Item ($str & "sendusing") = 2
        .Item ($str & "smtpserver") = "smtp.mail.ru"
        .Item ($str & "smtpauthenticate") = 1
        .Item ($str & "sendusername") = "[email protected]"
        .Item ($str & "sendpassword") = "pss"
        .Item ($str & "smtpserverport") = 2525
        .Update
    EndWith
$hMAIL.Send
 
Верх