4

Я ищу (и пока не нашел) решения для архивирования элементов электронной почты из моего Outlook в SQL Server.

Мой PST начинает становиться действительно большим, и я хотел бы извлечь мою старую электронную почту в SQL Server таким образом, чтобы я мог легко находить почту, если это необходимо. Я бы предпочел SQL Server в качестве носителя данных, так как я с ним знаком, и он потрясающий - я не хочу иметь коллекцию PST-файлов или CHM-файлов или что-нибудь подобное.

Кто-нибудь знает такое решение?

3 ответа3

1

Это, вероятно, не совсем то, что вы ищете, но это начало (и бесплатно!). Это макрос Outlook, который я написал некоторое время назад, чтобы сделать именно это. Самая большая проблема в том, что он не работает с вложениями, которые могут показаться вам интересными, но я все равно решил поделиться. Вы нажимаете на папку, которую хотите экспортировать, и она отправляет информацию о сообщении в таблицу SQL. Это достаточно легко изменить, если вы хотите больше полей.

Sub ExportMsgData()
    Dim objConn As New ADODB.Connection
    Dim rsMsgs As New ADODB.Recordset
    Dim strDBFile As String

    On Error Resume Next
    Set objConn = New ADODB.Connection
    With objConn
        .ConnectionString = "Provider=SQLOLEDB;data source=MySQLSvr;initial catalog=MyMail;integrated security=SSPI"
        .Open
    End With

    Set objExp = Application.ActiveExplorer
    If objExp.Selection.Count > 0 Then
        If objExp.Selection(1).Class = Outlook.OlObjectClass.olMail Then
            For Each objMsg In objExp.Selection
                With rsMsgs
                    .CursorLocation = adUseClient
                    .Open "SELECT TOP 1 * FROM t_Msg", objConn, adOpenDynamic, adLockBatchOptimistic
                    .AddNew
                    !MsgFrom = objMsg.SENDERNAME
                    !MsgFromEmail = objMsg.SenderEmailAddress
                    !MsgDateSent = objMsg.SentOn
                    !MsgDateReceived = objMsg.ReceivedTime
                    !MsgSubject = objMsg.Subject
                    .UpdateBatch
                    rsMsgs.Close
                End With
            Next
        End If
    End If

    objConn.Close
    Set rsMsgs = Nothing
    Set objConn = Nothing
End Sub
0

Это простое решение, которое я использую для архивирования электронных писем из Outlook:

  1. В Outlook не делайте экспорт. Вместо этого откройте папку, из которой вы хотите архивировать сообщения.
  2. Последовательность сообщений по желанию. Я заказываю по дате отправки, чтобы учесть произвольные временные рамки.
  3. Выделите сообщения, которые будут скопированы. (Нажмите, Shift+Click или нажмите Ctrl+A для всех.)
  4. В меню « Файл» нажмите « Сохранить как» и введите соответствующее имя файла. Это даст вам очень простой текстовый файл непрерывного текста для всех выбранных писем. Если вам нужны отдельные сообщения, к сожалению, вам нужно будет выбрать одно сообщение за раз.
  5. В SQL Server создайте таблицу, содержащую столбец идентификаторов, за которым следует столбец varchar(4000) . Импортируйте ваш текстовый файл в эту таблицу, которая сохраняет физическую последовательность через идентификатор и текстовый столбец для каждой строки. В зависимости от ваших навыков SQL, вы можете анализировать эту таблицу по своему усмотрению. Многие функции SQL, такие как, но не ограничиваясь этим, LTRIM , RTRIM , LIKE , ISNUMERIC , SUBSTRING , LEFT , RIGHT , LEN , PATINDEX , CHARINDEX и т.д., Позволяют извлекать переменные из текстовых строк.

Я использую этот метод для извлечения ежедневных котировок удерживаемых инвестиций из ежедневных электронных писем моего брокера и создания файлов обновлений цен для Quicken вместо того, чтобы полагаться на данные моего брокера и произвольные онлайн-возможности Quicken.

Если вы просто хотите архивировать сообщения, бесплатное приложение Mail Store Home просто потрясающее, а также имеет различные варианты создания файлов. Попытайся. И вы можете даже поместить сообщения НАЗАД в папки Outlook тоже.

0

Я до сих пор поражаюсь, что никто не смог придумать ответ .... что вы, ребята, делаете, чтобы архивировать ваши электронные письма? Выбросить их из Outlook или Thunderbird через 6 месяцев и забыть о них ?? Храните их как файлы .txt или .eml где-нибудь ??

Как бы то ни было, лучшее решение, которое я нашел, не использует SQL Server, но оно все еще выглядит достаточно мощным и полезным: MailStore Home - бесплатное для личного / домашнего использования, причем довольно изящное. Жаль, что он не поддерживает прямой импорт PST-файлов :-( - это только в версии сервера $$$$$ pro, но пока это единственный сладкий момент с этим приложением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .