Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Автоматизация ftp и e-mail операций

Автор: react
Дата сообщения: 29.10.2002 01:46
Помогите пожайлуста решить следующую проблему:
на одном фтпшнике периодически выкладывают некоторые
файлы названия которых формируются в зависимости от
даты. Подскажите плиз можно ли автоматизировать процесс
закачки этих файлов с фтп(жедательно сохраняя структуру
каталогов в которых они находятся) и как именно это
сделать - может какой-то фтп-клиент поддерживает
динамическую генерацию названий для upload'a или если
кто знает как это можно програмно организовать - подскажите
плиз или дайте хотя бы ссылки на доки по данному вопросу ???
И еще один вопрос: получив данные файлы надо разослать
их на некоторые e-mail'ы - вопрос в том как можно
динамически сгенерировать письмо для Bat'a или Outlook'a
и аттачнуть к этому письму нужные файлы ???

Заранее огромное спасибо за любого рода помощь !!!
Автор: Leshgan
Дата сообщения: 29.10.2002 09:04
Я сейчас как раз разбираюсь с FTP. Взял примерчик из Delphi 5. Из раздела FastNet. С помощью компоненты NMFTP можно получить список файлов на FTP сервере. Имея этот спсок ты можешь их всех скачать.
Автор: autumn_orion
Дата сообщения: 29.10.2002 12:37
react

Smtp.ClearParameters;
Smtp.Host := 'mail.host.ru';
Smtp.Port := 25;
Smtp.UserID := 'user';
Smtp.Charset:= 'windows-1251';
Smtp.PostMessage.FromAddress := 'FromAddress';
Smtp.PostMessage.FromName := 'FromName';
Smtp.PostMessage.ToAddress.Text := 'happy@user.ru';
Smtp.PostMessage.LocalProgram := 'localprogram';
Smtp.PostMessage.Date := '';
Smtp.PostMessage.ReplyTo := Smtp.PostMessage.FromAddress;
Smtp.PostMessage.Attachments.Text:=AttachedFileName;

Smtp.ClearParams:=False;
Smtp.SubType := mtPlain;
Smtp.EncodeType := uuMime;

Smtp.Connect;
Smtp.SendMail;
Smtp.DisConnect;

Вот, нашел такой пример: единственное, чего я не понял -- зачем нужно свойство localprogram
Автор: Raf007
Дата сообщения: 29.10.2002 18:08
autumn_orion

Цитата:
Вот, нашел такой пример: единственное, чего я не понял -- зачем нужно свойство localprogram

Это чтоб ты туда любое имя программы (которое первое в голову придёт) ввёл
Автор: Leshgan
Дата сообщения: 30.10.2002 14:57
autumn_orion
А если соединяюсь через прокси сервер?
Автор: Raf007
Дата сообщения: 30.10.2002 17:05
Leshgan

Цитата:
Я сейчас как раз разбираюсь с FTP. Взял примерчик из Delphi 5. Из раздела FastNet. С помощью компоненты NMFTP можно получить список файлов на FTP сервере. Имея этот спсок ты можешь их всех скачать.

незнаю мне больше как-то по душе ICS Delphi Компоненты

FTPClient Component

Properties:
HostName - FTP server host name or IP address
UserName - User name for authentication on FTP server
PassWord - Passwor needed for user, can be blank
HostDirName - Directory as knwon of FTP server
HostFileName - File name as known on FTP server
LocalFileName - Local file name (complete path)
Binary - Select binary or ascii file transfert (Need to call TypeSet
or TypeSetAsync to send it to FTP server).
(There are other less used properties, see code below)

Methods:
Open - Open the connection with the FTP server
User - Send username
Pass - Send password
Connect - Open the connection, send username and password
Quit - Disconnect gracefully from FTP server
Abort - Disconnect (close connection) immediately
AbortXfer - Abort file transfer without disconnecting.
Warning: LocalFilename property is lost after this command.
Pwd - Get current working directory
Cwd - Change Working Directory
CDup - Change to parent directory
TypeSet - Set type for file transfert (see Binary property)
TypeBinary - Set to binary type transfert and call TypeSet
TypeAscii - Set to ascii type transfert and call TypeSet

Put - Upload a file
Transmit - Connect, Cwd, Upload a file & Quit

Append - Upload a file, appending to existing
AppendFile - Connect, Cwd, Append a file & Quit

Get - Download a file
Receive - Connect, Cwd, Download a file & Quit

RestGet - Download a file, restarting from current local file size
RestartGet - Connect, Cwd, Restart downloading a file & Quit

RestPut - Upload a file, restarting from ResumeAt property value
RestartPut - Connect, Cwd, Restart uploading a file & Quit

Dir - Download a directory listing to a file
Directory - Connect, Cwd, Download a directory listing to a file & Quit

Ls - Download a file name listing to a file
List - Connect, Cwd, Download a file name listing to a file & Quit

Mkd - Create a directory on the server
Mkdir - Connect, Cwd, Create a directory on the server & Quit

Ren - Rename a file or directory on the server
Rename - Connect, Cwd, Rename a file or directory on the server & Quit

Dele - Delete a file on the server
Delete - Connect, Cwd, Delete a file on the server & Quit

Rmd - Remove a directoy from the server
Rmdir - Connect, Cwd, Remove a directoy from the server & Quit

Syst - Get system information from the server
System - Connect, Cwd, Get system information from the server & Quit

Size - Get file size
FileSize - Connect, Cwd, get file size & Quit

Quote - Send literal command (use LocalFileName as command to send)
DoQuote - Connect, Cwd, send literal command & Quit

(There are two set of methods: Async and Sync. The Async are the prefered
ones to build robust applications. Their name end with Async like GetAsync)
(There are other less used methods, see code below)

How to use a Proxy or Firewall ?
First of all, not all proxies or firewalls are the same. So have a look at
product documentation. However, most products support a transparent proxy
which doesn't require any special programming:
1) Instead of connection to a remote FTP server, you connect to the proxy
2) User name is replaced by user name, followed by '@' sign then followed
by target remote FTP server host name.
3) Password is usual remote FTP server password.
4) Most require using Passive mode.
Example: You want to connect to ftp.borland.com, using anonymous connection,
company firewall/proxy is running on host named proxyserver.
FtpCli1.HostName := 'proxyserver';
FtpCli1.UserName := 'anonymous@ftp.borland.com';
FtpCli1.Password := 'your.email@company';
FtpCli1.Passive := TRUE;

Автор: autumn_orion
Дата сообщения: 05.11.2002 09:22
Raf007

Цитата:
Это чтоб ты туда любое имя программы (которое первое в голову придёт) ввёл

Спасибо!!!
Автор: Fishbone
Дата сообщения: 11.11.2002 14:36
как я понял, тебя интересует алгоритм.
идея простая. объясняю по шагам.
1. коннектимся.
2. сливаем список файлов.
3. вычисляем контрольную сумму.
4. сравниваем с сохраненной контрольной суммой
5. были изменения ? да - 7.
6. нет - выходим
7. скачиваем то, чего недостает
8. сохраняем новую контрольную сумму.
9. выходим.

а что ты возьмешь за основу своего ФТП - это уж дело техники.
Автор: react
Дата сообщения: 03.12.2002 23:19
Ребят, подскажите пожалуйста можно ли програмно проверить
закончил wget закачку полностью или произошел разрыв
соединения. И еще скажите плиз, можно ли сделать так чтоб wget
качал один файл из списка параметров в одну директорию, а
другой - в другую. Кстати как юзать опцию --directory-prefix ? -
я пишу что-то вроде:

Код: wget.exe ... --directory-prefix='C:\temp'
Автор: f_serg
Дата сообщения: 04.12.2002 07:01
react

Цитата:
можно ли програмно проверить закончил wget закачку полностью или произошел разрыв соединения

В мануале не нашел, но думаю по коду завершения. Если 0 - все нормально, иначе - нет.

Цитата:
как юзать опцию --directory-prefix

Хм... У меня без апострофов все проходит. Попробуй -P C:/Temp
Автор: react
Дата сообщения: 04.12.2002 08:04
f_serg

Цитата:
В мануале не нашел, но думаю по коду завершения. Если 0 - все нормально, иначе - нет.

Код завершения проверял - постоянно возвращает 0.


Цитата:
Хм... У меня без апострофов все проходит. Попробуй -P C:/Temp

Попробовал как ты сказал - сотворяет в текущей папке директорию
С@3A а в ней директорию Temp.

Может у меня версия wget старая - 1.5.3.1 (под Windows) У тебя
какая ? Если выше, скинь плиз на мыл react@ua.fm

Заранее сенькс !
Автор: f_serg
Дата сообщения: 04.12.2002 09:59
react
У меня 1.8.1
Но так как сам собирал, то идет привязка к C:\Local, и требуется OpenSSL. В принципе не страшно, кладешь две DLL-ки куда-нибудь где их видно. Но общий файл с настройками должен быть C:\Local\Share\wgetrc.
В общем,

OpenSSL.zip - 727 кил и
WGet.zip - 280 кил.

Кидать?
Автор: react
Дата сообщения: 05.12.2002 23:32
f_serg
Кидай...

Пасибо !
Автор: f_serg
Дата сообщения: 06.12.2002 06:40
react
Ушло.

Страницы: 1

Предыдущая тема: ADO и Access: пользовательские функции БД


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.