2013-07-03 4 views
1

Я хочу отправить Outlook-письмо с помощью VBScript. Тело письма должно содержать содержимое текстового файла, скажем sha.txt. Ниже приведен код, я использую, но это дает мне эту ошибку:Отправка электронной почты Outlook с телом как содержимое текстового файла

Run Time error '287': Application-defined or Object defined error

Sub email1() 
    Dim outobj, mailobj  
    Dim strFileText 
    Dim objFileToRead  

    Set outobj = CreateObject("Outlook.Application")  
    Set mailobj = outobj.CreateItem(0)  
    Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Users\sonu\Desktop\auto\sha.txt", 1)  
    strFileText = objFileToRead.ReadAll() 
    objFileToRead.Close 
    Set objFileToRead = Nothing  
    With mailobj  
    .To = "[email protected]"  
    .Subject = "Testmail"  
    .Body = strFileText  
    .Send  
    End With  

    'Clear the memory 
    Set outobj = Nothing  
    Set mailobj = Nothing  
End Sub 
+0

У вас есть теги для ** 4 ** совершенно разные версии VB ... 'System.IO.File. ReadAllText' является .net, см. Http://stackoverflow.com/questions/3117121/reading-and-writing-value-from-a-textfile-by-using-vbscript-code для метода VBScript/VB6/VBA для чтения файл ('As String' также недействителен VBScript) –

+0

Привет, Aex, как я могу реализовать это в vb srcipt ... ???? Я новичок, поэтому, пожалуйста, направляйте решение. Спасибо! Спасибо! – Shashank

+0

Если я использую вышеупомянутый отредактированный код, он дает мне «Ошибка времени выполнения» 287: Определенная или заданная ошибка объекта. «Пожалуйста, посоветуйте и дайте мне возможное решение. Спасибо – Shashank

ответ

3
'I didn't look into the particular issue with your file reading. 
    'Below my example, just tested it works. 
    'Good luck mate :) 

     Sub CatchMe() 

      Dim outobj, mailobj 
      Dim strFileText 
      Dim objFileToRead 

      Set outobj = CreateObject("Outlook.Application") 
      Set mailobj = outobj.CreateItem(0) 
      strFileText = GetText("C:\Share\1.txt") 

      With mailobj 
      .To = "[email protected]" 
      .Subject = "Testmail" 
      .Body = strFileText 
      .Display 
      End With 

      'Clear the memory 
      Set outobj = Nothing 
      Set mailobj = Nothing 

     End Sub 

     Function GetText(sFile As String) As String 
      Dim nSourceFile As Integer, sText As String 
      nSourceFile = FreeFile 
      'Write the entire file to sText 
      Open sFile For Input As #nSourceFile 
      sText = Input$(LOF(1), 1) 
      Close 
      GetText = sText 
     End Function 
+0

Большое спасибо Владу ... ваша помощь очень ценится ... Ваш код работал .. :) – Shashank

+0

Еще один вопрос - Когда я запускаю этот код, проект электронной почты передо мной, но когда я отправляю это письмо, ничего приходит в мой INBOX. Не могли бы вы посоветовать мне, что может быть проблемой здесь ... ?? – Shashank

+0

Проблема решена, она застряла в моей папке «Исходящие»:) ... Спасибо всем вам за ваши усилия ... особенно благодаря Владу ... !!! Ура .. !!! – Shashank

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