2009-08-12 2 views
0

현재 전자 메일을 보내려는 vba 매크로를 작성하고 있지만 메시지가 생성되었지만 오류가 생성되어 전송되지 않았습니다. 현재 코드 :액세스 2003에서 vba를 사용하여 메일을 보낼 때 런타임 오류 287

Function CreateHURMail(Filename) 

Dim olApp As Outlook.Application 
Dim objMail As Outlook.MailItem 
Set olApp = New Outlook.Application 
Set objMail = olApp.CreateItem(olMailItem) 

With objMail 
    .Subject = "Test Message" 
    .Body = "Body Text" 
    .To = "[email protected]" 
    .Attachments.Add (Filename) 
    .Display 

    On Error Resume Next 
    .Send 

    'If Err.Number = 287 Then 
    ' MsgBox "Still doesn't work!", vbOKOnly, "DOH!" 
    'End If 
End With 


End Function 

누구든지 해결 방법을 알고 있습니까?

미리 감사드립니다.

+1

마찬가지로 메모 : Outlook은 VBA를 통한 메시지 전송을 엄격하게 제한합니다 (보안상의 이유로). 전자 메일을 보내려면 작은 명령 줄 도구를 사용하는 것이 좋습니다. –

답변

3

In Access DoCmd.SendObject에서 전자 메일을 보내십시오. 예 :

Call DoCmd.SendObject(acSendNoObject, To:="[email protected]", 
    Subject:="Test Message", MessageText:="Body Text", EditMessage:=true) 

No Object를 보내는 대신 테이블, 쿼리, 양식, 보고서 또는 양식을 보낼 수도 있습니다. 이런 식으로 정상적인 파일을 첨부 할 수 없습니다.

Outlook을 자동화하고 메시지를 보내려고하면 Outlook에서이를 포착합니다. Outlook의 보안 설정에 따라 자동화를 통해 메일을 완전히 전송할 수 없으며 자동화가 허용되거나 단순히 메일을 보내는 경우 팝업을 사용하여 사용자에게 묻습니다 (후자에주의하십시오).

보안이 자동화를 통해 메일을 완전히 보낼 수 없거나 사용자가 확인 대화 상자에서 "아니오"를 클릭했기 때문에 메일 보내기가 중단되면 오류 287이 발생합니다.

두 가지 방법으로 해결할 수 있습니다 : 보안을 완전히 해제하거나 사용자가 메일 보내기를 확인하도록하거나, mdb 파일에 서명하고 Outlook에서이를 신뢰하십시오. 후자는 다소 복잡하지만 가장 안전합니다. 이 도움이

희망, 당신은 Outlook Redemption을 고려하실 수 있습니다

관련 문제