|   |   | 
| 
 | Обмен данными через 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}`); }); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |