Что нового

Как отправить файл по почте

slowhd

Новичок
Сообщения
28
Репутация
1
Как осуществить отправку фалов по почте??
Есть код, но как к нему прикрепить файл ?
Код:
#Region переменные
   $sSmtpServer     =   "smtp.yandex.ru"
   $sFromName       =   "****"
   $sFromAddress    =   "****"
   $sUsername       =   "****"
   $sPassword       =   "****"
   $sSubject        =   "*****"
   $sBody           =   "**"
   $sToAddress      =   "*****"
   $iIPPort = 465
   $iSsl = 1
   Dim $aAttach[0]      ; Массив прикрепляемых файлов
   Global $oMyRet[2]
   Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
#EndRegion

$rc = _INetSmtpMailCom($sSmtpServer, $sFromName, $sFromAddress, $sToAddress, $sSubject, $sBody, $aAttach, Default, $sUsername, $sPassword, $iIPPort, $iSsl)
If @error Then
   MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
EndIf

Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $a_Attach = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 465, $ssl = True)
      Local $objEmail = ObjCreate("CDO.Message"), $i_Error = 0, $i_Error_desciption = ""
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/languagecode") = 1049
      $objEmail.BodyPart.CharSet = "utf-8"
      $objEmail.BodyPart.ContentTransferEncoding = "quoted-printable"
      $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
      $objEmail.To = $s_ToAddress
      $objEmail.Subject = $s_Subject
      ;         Можно отправлять в формате HTML
      ;$objEmail.HTMLBody = $as_Body
      $objEmail.TextBody = $as_Body

      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/usemessageresponsetext") = True
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
      $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password

      If UBound($a_Attach) > 0 Then
         For $j = 0 To UBound($a_Attach)-1
            If FileExists($a_Attach[$j]) Then
               $objEmail.AddAttachment ($aAttach[$j])
            Else
               Exit MsgBox(4096, "", "Файл " & $a_Attach[$j] & " не найден")
            EndIf
         Next
      EndIf
      If $ssl Then
         $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
      EndIf
      $objEmail.Configuration.Fields.Update
      $objEmail.Fields.Update
      $objEmail.Send
      If @error Then
         SetError(2)
         Return $oMyRet[1]
      EndIf
      $objEmail=""
EndFunc ;==>_INetSmtpMailCom

Func MyErrFunc()
   $HexNumber = Hex($oMyError.number, 8)
   $oMyRet[0] = $HexNumber
   $oMyRet[1] = StringStripWS($oMyError.description, 3)
   ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
   SetError(1); something to check for when this function returns
   Return
EndFunc ;==>MyErrFunc
 
Автор
S

slowhd

Новичок
Сообщения
28
Репутация
1
если честно то я не понял нифига, как собрать файл в массив ? ( пример твой посмотрел , он не многим отличается от моего, ) я просто не понимаю , откуда он возьмет файл , который нужно отправлять ( да,да , я тупой )
 

gunter123

Продвинутый
Сообщения
159
Репутация
69
Надо поменять строку:
Код:
Dim $aAttach[2] = ["C:\1.txt", "C:\Users\file.pdf"]
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Я отправляю почту и файлы волт так (то же самое , но несколько в ином виде)
Код:
$str = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
    With $hMAIL
        .From = "Отправитель@inbox.ru";
        .To = "Получатель@inbox.ru"
        .Subject = "Тема письма"
        .TextBody = "Текст письма"
       .AddAttachment ("Путь к файлу для отправки")  ;файл для отправки
    EndWith
    With $hMAIL.Configuration.Fields
        .Item ($str & "sendusing") = 2
        .Item ($str & "smtpserver") = "smtp.inbox.ru" ;SMTP Server
		.Item ($str & "smtpusessl") = True
        .Item ($str & "smtpauthenticate") = 1
        .Item ($str & "sendusername") = "Отправитель@inbox.ru"
        .Item ($str & "sendpassword") = "Пароль почты" ;Пароль SMTP-сервер
        .Item ($str & "smtpserverport") = 465		;Порт
        .Update
    EndWith
$hMAIL.Send
 
Верх