Почта, включающая SPList программно - PullRequest
0 голосов
/ 07 января 2010

В настоящее время я создаю инструмент, который автоматически создает сайты SharePoint. На каждом сайте должен быть включен почтовый ящик и указан определенный адрес электронной почты.

Я могу создать сайт, который по умолчанию имеет список SharePoint с именем «mailbox».

У меня вопрос, как разрешить SPList «почтового ящика» получать электронную почту? В SPList есть свойство CanReceiveEmail, но оно доступно только для чтения? Так есть ли другой способ?

Мне также нужно иметь возможность программно установить адрес электронной почты SPList, кто-нибудь знает лучший способ сделать это?

Это можно сделать вручную, но это не вариант.

1 Ответ

0 голосов
/ 07 января 2010

Простой список (насколько я знаю, но я могу ошибаться) не имеет возможности получать электронные письма. Вы можете создать собственный список, который делает.
Вы можете создать библиотеку документов, которая по умолчанию имеет эту возможность.

Как установлены эти свойства, вы можете увидеть, когда изучите код (используя Reflector Лутца Редера, http://www.red -gate.com / products / refleor / ) из /_layouts/EmailSettings.aspx, который можно найти в "Microsoft.SharePoint.ApplicationPages.dll" на вашем сервере в пути что-то вроде \\server\c$\Inetpub\wwwroot\wss\VirtualDirectories\80\_app_bin. Поэтому вам придется установить несколько свойств «корневой папки» библиотеки документов.

Код выглядит следующим образом:

Protected Sub SubmitButton_Click(ByVal sender As Object, ByVal args As EventArgs)
    If Me.EnabledTrue.Checked Then
        If ((Me.TxtAlias.Text Is Nothing) OrElse (Me.TxtAlias.Text.Length = 0)) Then
            Throw New SPException(SPResource.GetString("MissingEmailAlias", New Object(0  - 1) {}))
        End If

        'This will be the receiving e-mail address
        Me.m_List.EmailAlias = Me.TxtAlias.Text

        'do we need to check users permissions on items
        Me.m_RootFolder.Properties.Item("vti_emailusesecurity") = IIf(Me.UseSecurityTrue.Checked, 1, 0)

        If Me.ShowSaveAttachments Then
            'options how to save attachments, root folder, grouped, whatever
            Me.m_RootFolder.Properties.Item("vti_emailsaveattachments") = IIf(Me.SaveAttachmentsTrue.Checked, 1, 0)
        End If
        If Me.ShowSaveOriginalAndMeetings Then
            Me.m_RootFolder.Properties.Item("vti_emailsavemeetings") = IIf(Me.MeetingsTrue.Checked, 1, 0)
            Me.m_RootFolder.Properties.Item("vti_emailsaveoriginal") = IIf(Me.SaveOriginalTrue.Checked, 1, 0)
        End If

        If Me.ShowAttachmentFolders Then
            Me.m_RootFolder.Properties.Item("vti_emailoverwrite") = IIf(Me.OverwriteTrue.Checked, 1, 0)
            If Me.AttachmentFoldersSender.Checked Then
                Me.m_RootFolder.Properties.Item("vti_emailattachmentfolders") = "sender"
            ElseIf Me.AttachmentFoldersSubject.Checked Then
                Me.m_RootFolder.Properties.Item("vti_emailattachmentfolders") = "subject"
            Else
                Me.m_RootFolder.Properties.Item("vti_emailattachmentfolders") = "root"
            End If
        End If
        If Me.ShowAutoApprove Then
            'I think this is something when content approval is enabled.
            Me.m_RootFolder.Properties.Item("vti_emailautoapprove") = IIf(Me.AutoApproveTrue.Checked, 1, 0)
        End If
    ElseIf Me.EnabledFalse.Checked Then
        Me.m_List.EmailAlias = Nothing
    End If
    Me.m_RootFolder.Update
    Me.m_List.ResetContentTypes
    Me.m_List.Update
    SPUtility.Redirect((IIf((Me.m_List.BaseType = SPBaseType.Survey), "survedit", "listedit") & ".aspx?List=" & Me.m_List.ID.ToString), SPRedirectFlags.RelativeToLocalizedLayoutsPage, Me.Context)
End Sub

РЕДАКТИРОВАТЬ: добавил комментарии к моему коду

...