2017-04-17 156 views
1

我正在代表共享邮箱 - 通用系统帐户发送电子邮件?如何更新发件人电子邮件地址

如何更新Outlook邮件中的发件人?

我得到一个运行时错误 '438':对象不支持此属性或方法。从= “[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

您需要添加一些叙述到您的文章并修复代码格式。我试过了,它不会让我。但是,真的,这有什么问题?把你想要的任何电子邮件地址代替“[email protected]”。 – June7

+0

我得到运行时错误'438':对象不支持此属性或方法.From =“[email protected]” – Yves

+1

请参阅http://stackoverflow.com/questions/26427302/vba-code-发送电子邮件从二次电子邮件地址在展望,http://stackoverflow.com/questions/33322540/change-the-from-field,http://stackoverflow.com/questions/26432256/ sentonbehalfof - 不工作功能于Excel的2010年VBA代码。如果您在任何这些问题中找到答案,请考虑删除您的问题,因为该网站会争取一个没有重复的问题。 – niton

回答

0

首先,在调用Send方法之前,没有必要调用Display

如果您在Outlook中配置了共享邮箱,则需要使用SendUsingAccount属性,该属性允许设置Account对象,该对象表示MailItem要发送到的帐户。例如:

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 

使用SentOnBehalfOfName只要您的Exchange帐户有共享的邮箱或通讯组的SendAs权限,它会从共享帐户或组被发送,而不是名义发出的。

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 
相关问题