2017-04-17 2 views
1

J'envoie des e-mails au nom d'un compte Shared MailBox - système générique? Comment puis-je mettre à jour l'expéditeur dans le courrier Outlook?Comment mettre à jour un expéditeur EmailAddress

Je reçois une erreur d'exécution '438': Cet objet ne gère pas cette propriété ou méthode .De = "[email protected]"

Function CreateEmail(MySQL As String) 
'On Error GoTo Exit_Function: 
Dim oOutlook As Outlook.Application 
Dim oEmailItem As MailItem 'rs As Recordset 

Dim rs As Recordset 
Set rs = CurrentDb.OpenRecordset(MySQL) 
If rs.RecordCount > 0 Then 
    rs.MoveFirst 
    Do Until rs.EOF 
    If IsNull(rs!standard_e_mail_addr) Then 
     rs.MoveNext 
    Else 
     If oOutlook Is Nothing Then 
      Set oOutlook = New Outlook.Application 
     End If 
     Set oEmailItem = oOutlook.CreateItem(olMailItem) 
     With oEmailItem 
      .To = rs!standard_e_mail_addr 
      .From = "[email protected]" ' ** 
      .Subject = "Mandatory Action Required Submit In-Person Identification Form for " & rs!emp_fname 
      .Body = "EmpNo: " & rs!emp_no & vbCr & _ 
        "EmpName: " & rs!emp_fname & vbCr & _ 
        "DO NOT REPLY." 

      .Display 
      .Send 
      rs.Edit 
      rs!EmailNotification_Send = Date 
      rs.Update 

     End With 
     Set oEmailItem = Nothing 
     Set oOutlook = Nothing 
     rs.MoveNext 
End If 
Loop 

Else 
End If 
rs.Close 
Exit Function: 
    Exit Function 
End Function 
+1

Vous devez ajouter un récit à votre message et corriger la mise en forme du code. J'ai essayé et ça ne me laissera pas. Mais vraiment, quel est le problème? Mettez n'importe quelle adresse e-mail que vous voulez à la place de "[email protected]". – June7

+0

Je reçois une erreur d'exécution '438': objet ne prend pas en charge cette propriété ou cette méthode .From = "[email protected]" – Yves

+1

Voir http://stackoverflow.com/questions/26427302/vba-code- pour-envoyer-email-de-secondaire-email-address-dans-outlook, http://stackoverflow.com/questions/33322540/change-the-from-field, http://stackoverflow.com/questions/26432256/ sentonbehalfof-ne-travaille-pas-excel-2010-vba-code. Si vous trouvez une réponse dans l'une d'entre elles, pensez à supprimer votre question car le site s'efforce de répondre à une question sans doublons. – niton

Répondre

0

Bon, essayez: .SentOnBehalfOfName = """SenderName"" <[email protected]>"

également en revue: Use another account for sender

+0

Votre lien est cassé. Essayez de fournir la réponse et la référence à la page/forum/question que vous avez utilisé ou passé en revue. – Masoud

+0

Désolé, copier/coller le vissage. Lien fixe – June7

0

tout d'abord, il n'y a pas besoin d'appeler Display avant d'appeler la méthode Send. Si vous avez configuré la boîte aux lettres partagée dans Outlook, vous devez utiliser la propriété SendUsingAccount qui permet de définir un objet Account représentant le compte sous lequel l'élément MailItem doit être envoyé. Par exemple:

Sub SendUsingAccount() 
    Dim oAccount As Outlook.account 
    For Each oAccount In Application.Session.Accounts 
    If oAccount.AccountType = olPop3 Then 
     Dim oMail As Outlook.MailItem 
     Set oMail = Application.CreateItem(olMailItem) 
     oMail.Subject = "Sent using POP3 Account" 
     oMail.Recipients.Add ("[email protected]") 
     oMail.Recipients.ResolveAll 
     oMail.SendUsingAccount = oAccount 
     oMail.Send 
    End If 
    Next 
End Sub 

Utilisez SentOnBehalfOfName aussi longtemps que votre compte Exchange a l'autorisation SendAs pour la boîte aux lettres partagée ou d'un groupe de distribution, il sera envoyé à partir du compte partagé ou d'un groupe, pas envoyé au nom de.

With oEmailItem 
     .To = rs!standard_e_mail_addr 
     .SentOnBehalfOfName = "[email protected]" 
     .Subject = "Mandatory Action Required Submit In-Person Identification Form for " & rs!emp_fname 
     .Body = "EmpNo: " & rs!emp_no & vbCr & _ 
       "EmpName: " & rs!emp_fname & vbCr & _ 
       "DO NOT REPLY." 
     .Send