Что нового

Функция отправки сообщения на почту;есть ли такая?

renom

Новичок
Сообщения
127
Репутация
2
Нужн скрипт,который бы скопировал данные у меня в файле (под название rtr) и отправил бы их на почту([email protected])
Вопрос:
Возможно ли это осущ. в AutoIt?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Да.
User Defined Functions Reference -> Inet Management -> _INetSmtpMail
 
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
SyDr сказал(а):
Да.
User Defined Functions Reference -> Inet Management -> _INetSmtpMail
А какой тогда параметр нужно использовать в функции _INetSmtpMail ?


Добавлено:
Сообщение автоматически объединено:

Почему то не выходит...

Вот скрипт целиком(почты фейковые;после запуска выдает 4 ошибку(сокет)):

Код:
#include <INet.au3>

$s_SmtpServer = "mail.ru"
$s_FromName = "4210"
$s_FromAddress = "[email protected]"
$s_ToAddress = "[email protected]"
$s_Subject = "My Test UDF"
Dim $as_Body[2]
$as_Body[0] = "Testing the new email udf"
$as_Body[1] = "Second Line"
$Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body)
$err = @error
If $Response = 1 Then
    MsgBox(0, "Success!", "Mail sent")
Else
    MsgBox(0, "Error!", "Mail failed with error code " & $err)
EndIf

Поправьте если что не так...
=======================
=======================

Хотелось бы отметить,что это только скрипт на отправку сообщения,а мне хотелось бы,чтобы перед этим копировались данные находящиеся в определенном файле(в данном случае файл rtr) и эти данные уже шли на почту,вот так вот :smile:
 

SyDr

Сидра
Сообщения
651
Репутация
158
Для mail.ru alhtc smtp сервера - smtp.mail.ru

renom [?]
Хотелось бы отметить,что это только скрипт на отправку сообщения,а мне хотелось бы,чтобы перед этим копировались данные находящиеся в определенном файле(в данном случае файл rtr) и эти данные уже шли на почту,вот так вот
_FileReadToArray
_ArrayDelete
 
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
SyDr сказал(а):
Для mail.ru alhtc smtp сервера - smtp.mail.ru
50ая ошибка...

Не могли бы пожалуйста расписать подробнее?А то нынче рано темнеет в лесу... :smile:
 

Arei

Скриптер
Сообщения
938
Репутация
115
у меня есть готовый скрипт, я тебе отправлю ближе к обеду
 

Arei

Скриптер
Сообщения
938
Репутация
115
Код:
$SmtpServer = "smtp.mail.ru"            ; адрес SMTP сервера
$FromName = "Mail Sender"               ; имя отправителя
$FromAddress = "" ; адрес отправителя
$ToAddress = ""      ; адрес назначения
$Subject = "test_mail_8"              ; тема письма
$Body = "body_of_mail"            ; тело письма (сам текст письма)
$AttachFiles = "D:\1.txt"; прикреплённые файлы к письму
$Username = ""            ; имя пользователя аккаунта, с которого отправляется
$Password = ""                     ; пароль аккаунта, с которого отправляется

$BlatArgs = "-t "&$ToAddress&" -f "&$FromAddress&" -s "&$Subject&" -body "&$Body&" -server "&$SmtpServer&" -u "&$Username&" -pw "&$Password&" -attach "&$AttachFiles
;Run (@scriptdir & "\blat. " & $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 ;



используется http://autoit-script.ru/index.php?action=downloads;sa=view;down=50


этот файл ещё
 
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
Пишет

Case $result[0] = 13
Case $result^ERROR

Error: Subscript used with non-Array variable.
 

Arei

Скриптер
Сообщения
938
Репутация
115
файл и скрипт надо расположить в одну папку, и тогда всё работает нормально, но сейчас проверю ещё раз


Добавлено:
Сообщение автоматически объединено:

он работает полностью, только что проверил.Должен быть файл


Добавлено:
Сообщение автоматически объединено:

файл для отправки файла не должен содержать русские буквы.
 
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
Проблема решена(тема должна была быть на английском языке)

Большое Вам спасибо,данная проблема решена,если возникнут еще вопросы по этому теме задам их тут же :smile:

Еще раз спасибо!
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Arei
для кодов есть тэг [autoit][/autoit] или [code][/code] но никак не [box title=TitleBox][/box] ;)
 

Arei

Скриптер
Сообщения
938
Репутация
115
я хотел другое сделать,но забыл исправить
 
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
Возникла проблема...
Допустим нужный мне файл лежит в папке,в названии которого есть пробел,возможно ли оттуда переслать нужную мне информацию на почту?

Пример:
Код:
...
$AttachFiles = "D:\null block\proba.txt"
...


Помогите!
 

ynbIpb

Скриптер
Сообщения
399
Репутация
109
в кавычки видимо нужно взять этот путь: $AttachFiles = '"D:\null block\proba.txt"'
 

Arei

Скриптер
Сообщения
938
Репутация
115
да в "" и тогда работает (Проверенно на себе)
 
Автор
R

renom

Новичок
Сообщения
127
Репутация
2
С пробелом помогло...
А как действовать,если мне нужны все файлы и папки которые лежат папке test допустим?
 

ynbIpb

Скриптер
Сообщения
399
Репутация
109
упакуй в архив. Консольный rar.exe тебе в помощь.
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
Код:
Run('c:\Program Files\WinRAR\WinRAR.exe a -m5 -s 1.rar Folder_name', 'c:\')

сначала пишешь путь до РАРа и ключи [a -m5 -s 1.rar] добавит в архив(add) с именем 1.rar максимальны сжатием(mode5) и непрерывным(solid), потом идет имя папки, которое нужно сжать, и в конце корневая папка, для той которую нужно сжать(у меня она как бы в корне лежит).
 
Верх