2015-01-23 4 views
1

Greettings. Это мой первый пост здесь, так что несите меня.Полностью автоматическая отправка и ответ от Excel через Outlook

Я планировал разработать программное обеспечение базы данных, в настоящее время, в MS Access. Одной из функций, которые я планирую для этого программного обеспечения, является предоставление документов для утверждения. Идея состоит в том, чтобы из базы данных (отчета или формы) щелкнуть, чтобы отправить предварительно написанное электронное письмо с документом в приложении, но в том, что предварительно написанное электронное письмо будет иметь ссылку для отправки назад - писем по электронной почте, для быстрого автоматического ответа/ответа, но без ответа от Outlook. Цель состоит в том, чтобы люди отправляли из БД, другие принимали, читали документ, и, если они были одобрены, нажмите «автоответ», а Outlook будет просто «читающим» программным обеспечением со всей отправкой, выполненной в фоновом режиме.

Хотя я планирую приложение Access, я составил пример в Excel, для более быстрого тестирования (целевая поддержка используется для передачи строк, где когда-либо может содержать строку). Вот код до сих пор.

Private Function SendEmailWithOutlook(MessageTo As String, Subject As String, MessageBody As String, myAttachment As String) 

' Define app variable and get Outlook using the "New" keyword 
Dim olApp As New Outlook.Application 
Dim olMailItem As Outlook.MailItem ' An Outlook Mail item 

' Create a new email object 
Set olMailItem = olApp.CreateItem(0) 

' Add the To/Subject/Body to the message and display the message 
With olMailItem 
    .to = MessageTo 
    .Subject = Subject 
    .BodyFormat = olFormatHTML 
    .HTMLBody = MessageBody 
    .Attachments.Add (myAttachment) 
    .Send  ' Send the message immediately 
End With 

' Release all object variables 
Set olMailItem = Nothing 
Set olApp = Nothing 

End Function 

(С сайта MS)

функции для подготовки и отправки кода.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 

Dim myMsg As String 

If Target.TextToDisplay = "ASK APROVAL" Then 

Set c = ActiveWorkbook.Sheets(1).Range("E:E").Find(Target.ScreenTip, LookIn:=xlValues) 

If c Is Nothing Then 
    MsgBox "File Not Found" 
    Exit Sub 
End If 

'Retrieves the file name, stored in a cell to the right of the path 
myFile = c.Offset(0, 1).Value 

'Prepares the file for HTML reading 
myFile = Replace(myFile, " ", "%20") 

myMsg = "<HTML><BODY><SCRIPT type=""VBScript"">" & Chr(13) 
myMsg = myMsg & "FUNCTION SendEmail()" & Chr(13) 
myMsg = myMsg & "Dim olApp As New Outlook.Application" & Chr(13) 
myMsg = myMsg & "Dim olMailItem As Outlook.MailItem" & Chr(13) 
myMsg = myMsg & "Set olMailItem = olApp.CreateItem(0)" & Chr(13) 
myMsg = myMsg & "With olMailItem" & Chr(13) 
myMsg = myMsg & ".to = ""[email protected]""" & Chr(13) 
myMsg = myMsg & ".Subject = ""Approval""" & Chr(13) 
myMsg = myMsg & ".BodyFormat = olFormatHTML" & Chr(13) 
myMsg = myMsg & ".HTMLBody = ""<HTML><BODY>The document metioned bellow is approved!<P>" 
myMsg = myMsg & myFile 
myMsg = myMsg & "<P>(Auto Response)</BODY></HTML>""" & Chr(13) 
myMsg = myMsg & ".Send" & Chr(13) 
myMsg = myMsg & "End With" & Chr(13) 
myMsg = myMsg & "Set olMailItem = Nothing" & Chr(13) 
myMsg = myMsg & "Set olApp = Nothing" & Chr(13) 
myMsg = myMsg & "End Function" & Chr(13) 
myMsg = myMsg & "</SCRIPT>Dear Boss<P>Attached to this e-mail is a document for your approval. Thanks.<P><BR><a href=""#"" onclick=""SendMail()"">Click for auto response.</a>" 
myMsg = myMsg & "</BODY></HTML>" 

SendEmailWithOutlook "[email protected]", "Approval of Document in Attachment", myMsg, Target.ScreenTip 

Set c = Nothing 
End If 

End Sub 

Электронная почта отправляется с Sucess, но ссылка для возврата электронной почты, хотя присутствует, ничего не на клик сделать. Это проблема.

От тестирования, отлаживаясь в непосредственном окне, полный HTML-код, который был отправлен, корректен, с каждой цитатой на месте.

Как и другие варианты кода, я ранее пробовал с помощью простой функции javascript с «windows.location.href: 'mailto: ...», но не имел никакого эффекта. Первое, что я попробовал, это отправить через HTML-код FORM, но кнопка отправки встречается как текст в скобках.

Я не знаю, возможно ли это или нет, или если моя линия мышления отключена. Итак, оцените некоторую помощь. Большое спасибо.

ответ

1

Сценарии не будут работать в органах электронной почты из соображений безопасности. Также ссылка в теле письма не является хорошей идеей, она не будет работать так, как вы хотите. Вместо этого вы можете рассмотреть возможность создания надстройки, которая может быть установлена ​​на удаленных компьютерах. Когда вы получаете такое электронное письмо (где вам нужно получить обратную связь), вы можете добавить кнопку ленты в интерфейс Outlook, например, согласны и ответят в дополнение к стандартным кнопкам. В обработчике событий кнопки вы можете добавить свойство пользователя, которое вы можете получить в папке «Входящие». Имеет ли это смысл?

+0

Оперативно говоря, это так. Я пытаюсь создать систему, из которой я НЕ являюсь ИТ-администратором, добавляя, что люди имеют некоторое сопротивление новым инструментам. Это приложение для использования в компании/фабрике. Главной идеей в качестве конечного приложения является то, что люди используют только программное обеспечение в Access, для всего (даже вложенность внешнего вида внутри Access через API). Но это я не могу сделать прямо сейчас, и я планировал распространить эту функцию на другие приложения. Подобным образом лента может не работать (или работать). Но спасибо за эту идею. Может пригодиться. – JDF

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

  • Нет связанных вопросов^_^