|
Обмен данными через e-mail | ☑ | ||
---|---|---|---|---|
0
BendikaVils
23.09.24
✎
22:59
|
Всем привет, у меня стоит задача чтобы на e-mail отправлялся файл обмена из нетиповой конфы, а БП этот файл читала и загружала данные. Я посмотрел на ИТс и как я понял такое можно сделать только в РИБЕ, вопрос, это и правда можно сделать только в РИБЕ? Если да, то лучше через FTP обмен сделать?
|
|||
1
Волшебник
23.09.24
✎
23:08
|
Лучше через FTP
|
|||
2
Web00001
24.09.24
✎
07:43
|
А где вы берете этот файл обмена?
|
|||
3
Повелитель
24.09.24
✎
09:04
|
(0) Отвечу частично, чем FTP лучше емайла. Я пользовался и тем и тем. При этом обменом через емайл в РИБ пользовался 1-2 года, а потом перешел на FTP.
Как-то было, что мне емайл адреса, которые использовал только для обмена банили (яндекс/майл.ру), то ли по спаму, то ли ещё по какой-то причине. Потому ушел на свои корпоративные ящики. Во многих почтовиках есть ограничение на вложения, по 30-50 мб. И если в обмен попадало много данных, это всё застревало. Если есть свой почтовый сервер или корпоративная почта без ограничений, то будет лучше. А FTP мне показалось надежнее и проще. |
|||
4
Smit1C
24.09.24
✎
09:12
|
(3) тут и добавить нечего,
разве только про использование пассивного режима на FTP |
|||
5
BendikaVils
24.09.24
✎
10:01
|
(2) Он формируется при обмене, не я механизм делал, не скажу
|
|||
6
BendikaVils
24.09.24
✎
09:35
|
Вообще я это делаю для фрэша и ГРМ и мне сказали они FTP не любят и лучше сделать через почту, но никак не могу понять как через почту принимать и обмениваться вне РИБа
|
|||
7
craxx
24.09.24
✎
09:37
|
(0) Лучше всего обмен через Яндекс-диск.
Но там пилить придется. |
|||
8
BendikaVils
24.09.24
✎
09:44
|
Было бы хорошо, но блин, даже в БСП нету обмена через яндекс диск
|
|||
9
LinuxOrg
24.09.24
✎
09:48
|
E-mail? FTP? Netscape? Я попал в 98й год из 2024го?
|
|||
10
Мультук
гуру
24.09.24
✎
09:48
|
(0)
1) Вот скриншот из типовой БП 3 Два типовых обмена. Это не РИБ (смешно, да) С УТ и с ЗУП В настройках транспорта этих обменов можно выбрать "почта". Я х.з. работает ли это, но "почему бы нет" 2) Но сколько я помню по прошлым темам у вас "там" вообще нетиповой обмен Совсем. Тогда пишите свою нетиповую внешнюю обработку. Согласовывайте. Согласовывайте её работу как регламентное. Я с фрэш не работал, но думаю вам будет весело
|
|||
11
BendikaVils
24.09.24
✎
09:49
|
(10) я же говорю конфигурация у меня нетиповая у меня там нету этой настройки синхронизации данных
|
|||
12
Мультук
гуру
24.09.24
✎
09:51
|
(11)
Но БП то у вас типовой. Там то можно посмотреть "а как это сделано" |
|||
13
ptiz
24.09.24
✎
09:54
|
(0) Настроить обмен через каталог, а дополнительной утилитой (через виндовый планировщик) пулять файлы из каталога в почту, и наоборот - получать из почты в каталог.
|
|||
14
ptiz
24.09.24
✎
09:55
|
Конечно, если речь про мелкие файлы. Если большие - можно обмениваться ссылками на файлообменники.
|
|||
15
LinuxOrg
24.09.24
✎
10:04
|
Код сервера
const express = require('express'); const multer = require('multer'); const path = require('path'); const fs = require('fs'); const helmet = require('helmet'); // Константы для конфигурации const UPLOAD_DIR = './uploads'; const PORT = process.env.PORT || 3000; const app = express(); app.use(helmet()); // Улучшенная безопасность через заголовки // Функция для проверки и создания директории загрузки const ensureUploadDirExists = () => { if (!fs.existsSync(UPLOAD_DIR)) { fs.mkdirSync(UPLOAD_DIR); } }; // Определение хранилища файлов const storage = multer.diskStorage({ destination: (req, file, cb) => { ensureUploadDirExists(); cb(null, UPLOAD_DIR); }, filename: (req, file, cb) => { const uniqueSuffix = `${Date.now()}-${Math.round(Math.random() * 1e9)}`; cb(null, `${file.fieldname}-${uniqueSuffix}${path.extname(file.originalname)}`); }, }); // Валидация файла через multer (ограничение размера и типа файла) const upload = multer({ storage, limits: { fileSize: 10 * 1024 * 1024 }, // Ограничение размера файла до 10MB fileFilter: (req, file, cb) => { const fileTypes = /jpeg|jpg|png|pdf|txt/; // Разрешенные типы файлов const extname = fileTypes.test(path.extname(file.originalname).toLowerCase()); const mimetype = fileTypes.test(file.mimetype); if (mimetype && extname) { return cb(null, true); } else { cb(new Error('Unsupported file type')); } }, }); // Маршрут для загрузки файла app.post('/upload', upload.single('dataFile'), (req, res) => { if (!req.file) { return res.status(400).json({ error: 'No file was uploaded' }); } res.status(200).json({ message: 'File uploaded successfully', filename: req.file.filename }); }); // Запуск сервера app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); }); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |