2015-03-03 3 views
6

Ниже приведен код (я вытащил из нескольких источников) в настоящее время, когда я получаю письмо с конкретными словами в строке темы, оно запускает скрипт, который работает ниже.Переслать электронную почту со своим вложением в Outlook 2010

Этот код сохраняет строку темы, добавляет текст тела сообщения и форварда предполагаемому получателю.

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

КОД НИЖЕ:

Sub ForwardEmail(item As Outlook.MailItem) 
Dim oExplorer As Outlook.Explorer 
Dim oMail As MailItem 
Set oExplorer = Application.ActiveExplorer 

On Error GoTo Release 

If oExplorer.Selection.item(1).Class = olMail Then 
Set oMail = item.Forward 
oMail.Subject = oMail.Subject 
oMail.HTMLBody = "Have a nice day." & vbCrLf & oMail.HTMLBody 
oMail.Recipients.Add "email address here" 


oMail.Save 
oMail.Send 

End If 
Release: 
Set oMail = Nothing 
Set oExplorer = Nothing 
End Sub 
+0

Не кричать вообще. Я не включил «!». Я просто сделал важную часть всех шапок, чтобы надеяться привлечь кого-то внимание, которое искало вопросы, чтобы ответить, кто имел дело с этим раньше и может быть готов помочь мне. Письменное слово легко читается так, как хочет читатель, но я заверяю вас, что я буду очень благодарен за помощь. Я очень новичок в этом и попытаюсь отредактировать кепки, чтобы их не исказили другие. Мои извинения. – nfnf

+0

Это была шутка. Все колпаки в большинстве случаев перекликались. Я рекомендую размахивать «Как отформатировать в Markdown»? Раздел справочного центра. – RubberDuck

+0

Сказал, что я был очень новым, я даже не знал, что меня путают. Я «новый парень» :) – nfnf

ответ

5

Там нет необходимости использовать объект Explorer, в коде:

Sub ForwardEmail(item As Outlook.MailItem) 
    Dim oMail As MailItem  

    On Error GoTo Release 

    If item.Class = olMail Then 
    Set oMail = item.Forward 
    oMail.Subject = oMail.Subject 
    oMail.HTMLBody = "Have a nice day." & vbCrLf & oMail.HTMLBody 
    oMail.Recipients.Add "email address here" 

    oMail.Save 
    oMail.Send 
    End If 
Release: 
    Set oMail = Nothing 
    Set oExplorer = Nothing 
End Sub 

Вы можете найти Getting Started with VBA in Outlook 2010 статью полезной.

+0

Большое спасибо за то, что вы меня осмелились. Ваш смещенный код смог отправить электронное письмо без вложения, но не с приложением. Любые дальнейшие рекомендации попробовать будут оценены. – nfnf

+0

Похоже, Outlook заблокировал приложение. Попробуйте вызвать код вне правила. Вы получаете ту же проблему? –

+0

Мой макрос не отображается в поле «Выполнить» в качестве опции. Это моя первая попытка использовать vba в Outlook и попробовала все, что я мог придумать, чтобы запустить ее. Честно говоря, я был немного смущен, и я не мог заставить его бежать, не используя правила, используя скрипт. Странно, что ваш измененный код (благодаря тому, что BTW еще раз для этого) позволяет отправлять сообщения электронной почты, пока на нем нет вложения, но он не отправит письмо вообще, если у него нет вложения (т.е. не отправляет электронное письмо без приложения). – nfnf

2

Существует ненужное условие

If oExplorer.Selection.item(1).Class = olMail Then 

, что может привести к переадресации, чтобы обойти.

Sub ForwardEmail(item As Outlook.MailItem) 
' Dim oExplorer As Outlook.Explorer 
Dim oMail As MailItem 
' Set oExplorer = Application.ActiveExplorer 

On Error GoTo Release 

' If oExplorer.Selection.item(1).Class = olMail Then 

Set oMail = item.Forward 
oMail.Subject = oMail.Subject 
oMail.HTMLBody = "Have a nice day." & vbCrLf & oMail.HTMLBody 
oMail.Recipients.Add "email address here" 

' oMail.Save 
oMail.Send 

' End If 

Release: 
Set oMail = Nothing 
' Set oExplorer = Nothing 
End Sub 
+0

Я благодарю вас за то, что вы нашли время, чтобы попытаться помочь мне в этом. Я удалил эту строку кода и, к сожалению, пока не работает. Любые другие идеи были бы искренне оценены. – nfnf

+0

Неверный код является ложным ключом. Если вы ищете причину, отличную от VBA, есть много результатов. http://www.msoutlook.info/question/attachments-disappear-rich-text http://www.computerhope.com/issues/ch000728.htm https://www.novell.com/communities/coolsolutions/mystery- отсутствующие вложения электронной почты/http://support.microsoft.com/kb/958012 – niton