2014-02-06 7 views
0

Я работаю над приложением, которое среди других приложений позволяет отправлять электронные письма. Он работает, записывая все на SQL-сервер, поэтому вы можете иметь несколько экземпляров приложения.C++ - Отправка «Вложений электронной почты» по сети

Отправка электронной почты в настоящее время работает с таблицей «Исходящие» на SQL-сервере, к которой экземпляры приложения непосредственно записывают данные с помощью операторов SQL. Однако я столкнулся с проблемой, что возникло требование для вложений в сообщениях электронной почты.

Я полагаю, что если я могу отправить прикрепленные файлы в каталог, на котором находится сервер SQL (возможно, каталог TEMP?), А затем сохранить путь к этому файлу (или UUID, если файл постоянный) в таблице. Проблема в том, что я понятия не имею, с чего начать с отправки файла, так как я все еще смутно новичок в C++.

Один термин, с которым я столкнулся, отправляет его с сокетами, но я борюсь с тем, с чего начать, и не знаю, действительно ли это лучший вариант. Может ли кто-нибудь дать совет по этому вопросу?

Заранее спасибо.

ответ

1

Если я правильно понимаю, как она работает (приложения сохранить электронную почту в SQL, то другое приложение берет их и посылает их) у вас есть два варианта:

  1. сохранить вложение как двоичный файл в SQL и есть приложение для почтовой программы делает все остальное.
  2. Используйте сокеты для передачи файла на SQL-сервер и сохраните путь к нему, как вы сказали.

Я бы сказал, что вариант 1 был бы лучшим вариантом, если бы я правильно понял, как он работает в настоящее время. А что касается варианта 2, есть, вероятно, другие способы переноса файла, но сокеты будут легко кросс-платформенным.

Его нетрудно начать с сокетов, есть много примеров по всему Интернету.

+0

Спасибо за совет - не могли бы вы рекомендовать руководство для делать это с C++ и ADO? В настоящее время я получаю доступ к моей базе данных sql. Мой самый большой вопрос: не могли бы вы продолжить «делать все остальное»^__ ^? – Raiden616

+0

@ user1014679 Я не знаком ни с ADO, ни с протоколом передачи почты вообще, но я имел в виду, что приложение 1 (пользовательское приложение) должно пройти по пути к файлу, который пользователь хочет подключить, прочитать его как двоичный, сохранить в SQL вместе с текстом и другой информацией. Затем приложение 2 (серверное приложение) должно читать данные из SQL и отправлять почту. Вы захотите посмотреть, как должна выглядеть часть прикрепления почты, возможно [это] (http://stackoverflow.com/q/17097806/1312672) и [это] (http: //en.wikipedia. org/wiki/MIME). –

+0

Да, я понял :) У меня есть почтовая оболочка, которая может принимать строки расположения файлов в качестве параметра для добавления вложений, так что об этом заботятся. Поэтому, если я захочу перейти на BLOB-маршрут, я вижу, что серверное приложение должно: читать двоичный код; восстановить исходный файл в локальном, временном месте; а затем добавьте эту строку местоположения в мою почтовую оболочку. Вы знаете, как это будет сделано? – Raiden616

Смежные вопросы