2009-07-16 7 views
3

Je dois envoyer une série de notifications par courrier électronique à partir d'une base de données MS Access.Envoi d'un courrier électronique à partir de MS Access Aucune DLL tierce autorisée

  • Aucun dll tiers est comme Redemption
  • Ne peut pas déclencher les avertissements de sécurité Outlook
  • Le courrier électronique présente une pièce jointe pdf

Je sais faire ce que je dois utiliser MAPI, mais je ne peut pas sembler trouver un moyen de le faire avec VBA.

Toute aide serait appréciée

Merci,

Scott

Répondre

2

Si vous peut vivre avec exiger CDO d'être présent sur t La machine, et cela ne vous dérange pas un serveur SMTP fourni par l'utilisateur, vous pouvez l'utiliser. Juste google pour quelques exemples de code, mais pour vous commodité, je vais coller ci-dessous quelques-uns de www.rondebruin.nl:

Sub CDO_Mail_Small_Text() 
Dim iMsg As Object 
Dim iConf As Object 
Dim strbody As String 
' Dim Flds As Variant 

Set iMsg = CreateObject("CDO.Message") 
Set iConf = CreateObject("CDO.Configuration") 

' iConf.Load -1 ' CDO Source Defaults 
' Set Flds = iConf.Fields 
' With Flds 
'  .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
'  .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _ 
'      = "Fill in your SMTP server here" 
'  .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
'  .Update 
' End With 

strbody = "Hi there" & vbNewLine & vbNewLine & _ 
      "This is line 1" & vbNewLine & _ 
      "This is line 2" & vbNewLine & _ 
      "This is line 3" & vbNewLine & _ 
      "This is line 4" 

With iMsg 
    Set .Configuration = iConf 
    .To = "[email protected]" 
    .CC = "" 
    .BCC = "" 
    .From = """Ron"" <[email protected]>" 
    .Subject = "Important message" 
    .TextBody = strbody 
    .Send 
End With 

End Sub 

Ajout d'une pièce jointe serait fait à l'aide .AddAttachment « C: \ files \ filename.pdf » sur la iMsg.

+0

Je jouais avec cette idée pour commencer, c'est la façon dont j'ai décidé d'aller --Merci – Scott

+0

Cela a également aidé .... Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true – Praesagus

0

Si l'utilisateur Outlook est installé:

Dim strErrMsg As String 'For Error Handling 
Dim olApp As New Outlook.Application 
Dim olNameSpace As Outlook.NameSpace 
Dim olMail As Outlook.MailItem 
Dim oleGrf As Object 
Dim strFileName As String 

Set olNameSpace = olApp.GetNamespace("MAPI") 
Set olMail = olApp.CreateItem(olMailItem) 
Set oleGrf = Me.OLEchart.Object 
strFileName = "c:\temp\Graph.jpg" 
oleGrf.Export FileName:=strFileName 

With olMail 
    .To = "[email protected]" 
    .Subject = "Graph Info " & Format(Now(), "dd mmm yyyy hh:mm") 
    .Attachments.Add strFileName 
    .ReadReceiptRequested = False 
    .Send 
End With 
Kill strFileName 

Consultez également Microsoft Access Email FAQ Tony Toews

+0

Ce qui est une excellente ressource, mais ne contient pas de réponse réelle à la question. Bien que je doive dire que je ne pense pas qu'une réponse satisfaisant toutes les réticences posées existe. –

Questions connexes