Что нового

Странное поведение blat.dll

tarhitay

Новичок
Сообщения
17
Репутация
0
Так работает
Код:
$SmtpServer = "smtp.server.ru"            ; адрес SMTP сервера
$FromName = "Name"               ; имя отправителя
$FromAddress = "[email protected]" ; адрес отправителя
$ToAddress = "[email protected]"      ; адрес назначения
$Subject = "testing"              ; тема письма
$Body = "Тест"            ; тело письма (сам текст письма)
$AttachFiles = "C:\log\1.png"; прикреплённые файлы к письму
$Username = ""            ; имя пользователя аккаунта, с которого отправляется
$Password = ""                     ; пароль аккаунта, с которого отправляется
	$BlatArgs = String"-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles&" -log c:\log\blatlog.txt"

_SendMail($BlatArgs)





Func _SendMail($CMDstring)
    $BlatDLL = DllOpen ("blat.dll")
    Do
        $res=DllCall($BlatDLL,"int","Send","str",$CMDstring)
	$result=$res[0]
			Select
				Case $result = 13
					MsgBox(16,"Ошибка. Код ошибки " & $result, "Не могу открыть временный файл во временной папке")

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

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

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

$BlatArgs=-t [email protected] -f [email protected] -s testing -body Òåñò -server smtp.jino.ru -u [email protected] -pw password -attach C:\log\1.png -log c:\log\blatlog.txt

Так не работает
Код:
$SmtpServer = "smtp.server.ru"            ; адрес SMTP сервера
$FromName = "Name"               ; имя отправителя
$FromAddress = "[email protected]" ; адрес отправителя
$ToAddress = "[email protected]"      ; адрес назначения
$Subject = "testing"              ; тема письма
$Body = "Тест"            ; тело письма (сам текст письма)
$AttachFiles = FileOpenDialog("", @UserProfileDir&"\Documents\", "all(*.*)"); прикреплённые файлы к письму
$Username = ""            ; имя пользователя аккаунта, с которого отправляется
$Password = ""                     ; пароль аккаунта, с которого отправляется
	$BlatArgs = String"-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles&" -log c:\log\blatlog.txt"

_SendMail($BlatArgs)





Func _SendMail($CMDstring)
    $BlatDLL = DllOpen ("blat.dll")
    Do
        $res=DllCall($BlatDLL,"int","Send","str",$CMDstring)
	$result=$res[0]
			Select
				Case $result = 13
					MsgBox(16,"Ошибка. Код ошибки " & $result, "Не могу открыть временный файл во временной папке")

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

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

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

$BlatArgs=-t [email protected] -f [email protected] -s testing -body Òåñò -server smtp.jino.ru -u [email protected] -pw password -attach C:\log\1.png -log c:\log\blatlog.txt

В $BlatArgs ничего не меняется при этом :( Не вижу почему не должно работать :(
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 166
Репутация
2 330
tarhitay
А при чём тут раздел "Баг-репорты и запросы на новые функции"?
Переношу...
 

alex33

Скриптер
Сообщения
1 453
Репутация
181
OffTopic:
tarhitay,
А может быть вам лучше подойдёт вариант отправки почты через объект CDO.Message ? Он нормально работает.
 
Автор
T

tarhitay

Новичок
Сообщения
17
Репутация
0
Решил проблему использованием blat.exe и Run()
 
Верх