2010-01-07 3 views
0

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

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

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

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

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

Благодаря

ответ

0

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

Как эти свойства установлены, вы можете видеть, когда вы исследуете код (с помощью отражателя Лутца Редера в, http://www.red-gate.com/products/reflector/) из /_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 

EDIT: добавлены комментарии к моему коду

Смежные вопросы