AutoIt: Изпращане на емайл

Публикувано: 09.08.13, 15:03:08 | Автор: ArMeN | Видяна: 1827 | Редактирано: 19.07.16, 21:16:02

Изпращане на емайл с помощта на AutoIt. Но за да бъде изпратен трябва да се регистрирате в mail.ru и да използвате smtp сървъра на сайта...

$str = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
With $hMAIL
.From = "user@mail.ru" ;Имейла от когото изпращате
.To = "test@abv.bg" ;Имейла на когото ще изпращате
.Subject = "Otnosno" ;Относно
.TextBody = "Tekst v emaila" ;Текст на имейла
.AddAttachment ("C:\boot.ini") ;Файл за изпращане
EndWith
With $hMAIL.Configuration.Fields
.Item ($str & "sendusing") = 2
.Item ($str & "smtpserver") = "smtp.mail.ru" ;smtp сървар
.Item ($str & "smtpauthenticate") = 1
.Item ($str & "sendusername") = "user@mail.ru" ;Имейла на smtp сървара
.Item ($str & "sendpassword") = "pss" ;Парола на smtp сървара
.Item ($str & "smtpserverport") = 2525 ;Порт
.Update
EndWith
$hMAIL.Send


Изпращане на емайл със сървъра на abv.bg

$str = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
With $hMAIL
.From = "user@abv.bg" ;Имейла от когото изпращате
.To = "test@abv.bg" ;Имейла на когото ще изпращате
.Subject = "Otnosno" ;Относно
.TextBody = "Tekst v emaila" ;Текст на имейла
.AddAttachment ("C:\boot.ini") ;Файл за изпращане
EndWith
With $hMAIL.Configuration.Fields
.Item ($str & "sendusing") = 2
.Item ($str & "smtpserver") = "smtp.abv.bg" ;smtp сървар
.Item ($str & "smtpauthenticate") = 1
.Item ($str & "sendusername") = "user@abv.bg" ;Имейла на smtp сървара
.Item ($str & "sendpassword") = "pss" ;Парола на smtp сървара
.Item ($str & "smtpusessl") = 1
.Item ($str & "smtpserverport") = 465 ;Порт
.Update
EndWith
$hMAIL.Send


Още един метод с blat.dll
http://www.blat.net/

$SmtpServer = "smtp.mail.ru" ; Адрес на SMTP сървъра
$Port = "2525" ; Порт на SMTP сървъра
$FromAddress = "test@mail.ru" ; Имейла от когото изпращате
$ToAddress = "test@abv.bg" ; Имейла на когото ще изпращате
$Subject = """Otnosno""" ; Относно
$Body = """Tekst v imeila""" ; Текст на имейла
$AttachFiles = "C:\boot.ini" ; Файл за изпращане
$Username = "test@mail.ru" ; Имейла на smtp сървара
$Password = "pss" ; Парола на smtp сървара

$BlatArgs = "-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles&" -portSMTP "&$Port

_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


Съкратен скрипт

$SmtpServer = "smtp.mail.ru" ; Адрес на SMTP сървъра
$Port = "2525" ; Порт на SMTP сървъра
$FromAddress = "test@mail.ru" ; Имейла от когото изпращате
$ToAddress = "test@abv.bg" ; Имейла на когото ще изпращате
$Subject = """Otnosno""" ; Относно
$Body = """Tekst v imeila""" ; Текст на имейла
$AttachFiles = "C:\boot.ini" ; Файл за изпращане
$Username = "test@mail.ru" ; Имейла на smtp сървара
$Password = "pss" ; Парола на smtp сървара

$BlatArgs = "-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles&" -portSMTP "&$Port

_SendMail($BlatArgs)

Func _SendMail($CMDstring)
$BlatDLL = DllOpen ("blat.dll")
$result=DllCall($BlatDLL,"int","Send","str",$CMDstring)
MsgBox(16, "Няма грешки.", "Писмото е изпратено :-)" & @CRLF)
DllClose ($BlatDLL)
EndFunc


Изпращане на имейл в HTML формат или обикновен с различна кодировка и с проверка наличие на интернет преди изпращане.

PingG()

Func PingG()
Sleep(1000)
$var = Ping("www.google.com",1000)
If $var Then
SendMeil()
Else
PingG()
EndIf
EndFunc

Func SendMeil()
$str = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
With $hMAIL
.From = "user@abv.bg" ;Имейла от когото изпращате
.To = "test@abv.bg" ;Имейла на когото ще изпращате
.Subject = "Относно" ;Относно
;.TextBody = "Текст" ;Текст на имейла ако е в обикновен формат
.BodyPart.Charset= "UTF-8" ;кодировка на писмото "windows-1251"
.HTMLBody = "<b>Текст Текст Текст</b></br>" ;В HTML формат
.AddAttachment ("C:\boot.ini") ;Файл за изпращане
EndWith
With $hMAIL.Configuration.Fields
.Item ($str & "sendusing") = 2
.Item ($str & "smtpserver") = "smtp.abv.bg" ;smtp сървар
.Item ($str & "smtpauthenticate") = 1
.Item ($str & "sendusername") = "user@abv.bg" ;Имейла на smtp сървара
.Item ($str & "sendpassword") = "pss" ;Парола на smtp сървара
.Item ($str & "smtpusessl") = 1 ;TLS/SSL 0 е спрян
.Item ($str & "smtpserverport") = 465 ;Порт
.Update
EndWith
$hMAIL.Send
EndFunc


Още един метод със системата SMAIL

Не сте влезли в акаунта си за да коментирате.


 

Няма коментари.