Avatar billede monmike Nybegynder
28. september 2004 - 17:03 Der er 4 kommentarer og
1 løsning

Problemer med Outlook send mail

Hejsa - Har vist fået lidt hjælp omkring det her før, men nu er der noget galt igen.
Hvis ikke begge email felter er udfyldt, så får jeg en fejl. Hvor er det lige i koden, jeg skal have noget rettet til.

Kode:
Private Sub mailconfirmation_Click()
On Error GoTo Err_mailconfirmation_Click
   
Dim stDocName As String
Dim stLinkCriteria As String
Dim Beskedtekst As String
Dim A As String
Dim B As String
Dim C As String
Dim K As String

stDocName = "Confirmation PDF"
stLinkCriteria = "[ID]=" & Me![ID]
   
DoCmd.OpenReport stDocName, acNormal, , stLinkCriteria

If IsNull(Trim(Me.Email)) = True Or IsEmpty(Trim(Me.Email)) = True Then
A = "none"
Else
A = Me.Email
End If
If IsNull(Trim(Me.Kontaktemail)) = True Or IsEmpty(Trim(Me.Kontaktemail)) = True Then
C = "none"
Else
C = Me.Kontaktemail
End If

B = "Confirmation # " & Me.ID + 10000
K = "C:\Documents and Settings\" & Environ("Username") & "\Skrivebord\Confirmation.pdf"
Beskedtekst = "Attention: " & Me.Kontaktperson & vbNewLine & vbNewLine

Call SendMessage(True, A, C, B, Beskedtekst, K)

Exit_mailconfirmation_Click:
    Exit Sub

Err_mailconfirmation_Click:
    MsgBox Err.Description
    Resume Exit_mailconfirmation_Click
End Sub



Mailsendefunktion:


Public Function SendMessage(DisplayMsg As Boolean, ParRecipient As String, ParCCRecipient As String, ParSubject As String, ParBody As String, Optional AttachmentPath)
          Dim objOutlook As Outlook.Application
          Dim objOutlookMsg As Outlook.MailItem
          Dim objOutlookRecip As Outlook.Recipient
          Dim objOutlookAttach As Outlook.Attachment

          ' Opret Outlook session.
          Set objOutlook = CreateObject("Outlook.Application")

          ' Opret meddelelsen.
          Set objOutlookMsg = objOutlook.CreateItem(olMailItem)

          With objOutlookMsg
             
              If ParRecipient = "none" And ParCCRecipient = "none" Then
              MsgBox "No Email Address Available" & Chr(13) & "Sending is cancelled", , "Error"
              Exit Function
              Else
                If ParRecipient = "none" Then
                Else
                    If IsEmailValid(ParRecipient) = True Then
                        ' Tilføj modtager.
                        Set objOutlookRecip = .Recipients.Add(ParRecipient)
                        objOutlookRecip.Type = olTo
                    Else
                    MsgBox "Main Email isn't valid:" & Chr(13) & ParRecipient, vbQuestion, "Error"
                    Exit Function
                    End If
                End If
               
                If ParCCRecipient = "none" Then
                Else
                    If IsEmailValid(ParCCRecipient) = True Then
                        'Tilføj evt. CC modtager.
                        Set objOutlookRecip = .Recipients.Add(ParCCRecipient)
                      objOutlookRecip.Type = olCC
                    Else
                    MsgBox "Contact Email isn't valid:" & Chr(13) & ParCCRecipient, vbQuestion, "Error"
                    Exit Function
                    End If
                End If
              End If
             
            ' Sæt Emne, Indhold og Prioritet.
            .Subject = ParSubject
            .Body = ParBody
            .Importance = olImportanceNormal  'High importance

            ' Tilføj evt. vedhæftet fil.
            If Not IsMissing(AttachmentPath) Then
                Set objOutlookAttach = .Attachments.Add(AttachmentPath)
            End If

            ' Kontroller navne.
            For Each objOutlookRecip In .Recipients
                objOutlookRecip.Resolve
            Next
           
            ' Skal meddelelsen vises inden afsendelse?
            If DisplayMsg Then
                .Display
            Else
                .Save
                .Send
            End If
          End With
          Set objOutlook = Nothing
      End Function
Avatar billede monmike Nybegynder
28. september 2004 - 17:03 #1
Håber det er til at overskue.....
Avatar billede mugs Novice
28. september 2004 - 17:49 #2
På denne linie kontrollerer du det samme felt (Me.Kontaktemail) 2 gange. Det ene skal være en BCC:

If IsNull(Trim(Me.Kontaktemail)) = True Or IsEmpty(Trim(Me.Kontaktemail)) = True Then

Hvorfor har du 2 x newline. Der følger jko ike noget efter til linie 3:

Beskedtekst = "Attention: " & Me.Kontaktperson & vbNewLine & vbNewLine
Avatar billede monmike Nybegynder
28. september 2004 - 18:03 #3
ja det gør jeg jo egentlig begge gange:

If IsNull(Trim(Me.Email)) = True Or IsEmpty(Trim(Me.Email)) = True Then
A = "none"
Else
A = Me.Email
End If
If IsNull(Trim(Me.Kontaktemail)) = True Or IsEmpty(Trim(Me.Kontaktemail)) = True Then
C = "none"
Else
C = Me.Kontaktemail
End If

Det er bare for at være helt sikker. Måske lidt overflødigt, men kan det være der fejlen ligger. Hvis en email adresse er tom burde der jo komme til at stå none i enten to eller cc. og så i send mail scriptet kigger den jo om der står none, for så springer den over adressen. Det er for at undgå null fejl.

Beskedtekst har newline, fordi der normalt er mere tekst, fjernede det bare for eks. skyld.
Avatar billede mugs Novice
28. september 2004 - 18:25 #4
Det burde være nok med:

If IsNull(Me.Email) Then
Avatar billede monmike Nybegynder
04. oktober 2004 - 10:15 #5
Tror faktisk det virker nu. Ved ikke helt hvad der er sket, men det kan jo være dobbelt checket som har drillet lidt. Lukker og takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester