邮件通过Exchange Web服务(VB.NET)

时间:2011-11-24 08:52:23

标签: web-services email exchange-server

此处任何有使用Exchange网络服务经验的人。

我正在尝试使用网络服务向自己发送电子邮件。这封电子邮件有另一个地址作为发件人,但它不断将收件人的电子邮件地址作为发件人:s

这是我的代码:

    Dim Message As MessageType = New MessageType()
    Message.Subject = txt
    Message.Body = New BodyType()
    Message.Body.Value = ActiesOverzicht

    Message.Sender = New SingleRecipientType
    Message.Sender.Item = New EmailAddressType
    Message.Sender.Item.EmailAddress = SenderEmail

    Message.ToRecipients = New EmailAddressType(0) {}
    Message.ToRecipients(0) = New EmailAddressType()
    Message.ToRecipients(0).EmailAddress = RecipientsEmail

    Message.Sensitivity = SensitivityChoicesType.Normal

此消息进入列表并使用以下代码发送:

    Public Sub SendMailToOperator(messageList As List(Of MessageType), esb As ExchangeServiceBinding)
    ' Create the CreateItem request.
    Dim createEmailRequest As New CreateItemType()

    ' Specifiy how the e-mail will be handled.
    createEmailRequest.MessageDisposition = MessageDispositionType.SendOnly
    createEmailRequest.MessageDispositionSpecified = True

    ' Create the array of items.
    createEmailRequest.Items = New NonEmptyArrayOfAllItemsType()
    ' Add the message to the array of items to be created.
    createEmailRequest.Items.Items = messageList.ToArray()
    'createEmailRequest.Items.Items(0) = Message

        ' Send a CreateItem request and get the CreateItem 
        ' response.
        Dim createItemResponse As CreateItemResponseType = esb.CreateItem(createEmailRequest)
     End Sub

有没有人对如何解决这个问题有任何想法?或者是什么导致它?

1 个答案:

答案 0 :(得分:1)

AFAIK Exchange通常会始终将发件人设置为登录人员的身份。

有几种解决方法,最简单的方法是不使用Exchange。只需通过“普通”SMTP发送邮件。

如果必须使用Exchange,则应以您尝试使用的发件人身份登录,或者设置您尝试用作发件人的帐户的权限。您正在使用的发件人应允许您使用的帐户登录以代表其发送邮件。可以通过outlook更改权限。

可能还有一种方法可以在Exchange服务器上放宽此限制,但我不是Exchange管理员,因此我不知道如何操作。