Поделиться через


SharePoint 2013 - Unable to send emails to external email addresses (SharePoint 2013 workflows)

By default SharePoint Designer workflows creating using SharePoint 2013 Workflows will not sent emails to the external users (email addresses).  

When you add a step "Email these users" in workflow and select type an external email address, you will receive a pop-up stating "The selected user(s) may not be valid on the site this workflow is published on. If a recipient is not a valid SharePoint user, he or she will not receive workflow emails."

This is by design behavior with SharePoint 2013 workflows where as the workflows you add from the SharePoint 2013 site (the workflows which are available as soon as you activate the features on the site collection or the site) have no impact as they are SharePoint 2010 workflows. With that said, the designer workflows created using SharePoint 2010 workflows will be working fine (including this functionality).

This is a security enhancement in SharePoint 2013 workflows to enable the users to get approval from the administrators before sending emails to the external users. 

How is this implemented?

REST services validation.

For each and every user you add to the "email these users" in the designer creating using SharePoint 2013 workflows, a SOAP request is generated using the webservice (people.asmx) which calls ResolvePrincipals method to find the username. (_vti_bin/people.asmx?op=ResolvePrincipals).

 Request:  

<soap:Envelope xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ResolvePrincipals xmlns="https://schemas.microsoft.com/sharepoint/soap/"><principalKeys><string>rajbugga@live.com</string></principalKeys>

<principalType>All</principalType>

<addToUserInfoList>false</addToUserInfoList>

</ResolvePrincipals></soap:Body></soap:Envelope>

Response:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"><soap:Body><ResolvePrincipalsResponse xmlns="https://schemas.microsoft.com/sharepoint/soap/"> <ResolvePrincipalsResult><PrincipalInfo><AccountName>rajbugga@live.com</AccountName><UserInfoID>-1</UserInfoID><IsResolved>false</IsResolved><MoreMatches /><PrincipalType>All</PrincipalType></PrincipalInfo></ResolvePrincipalsResult> </ResolvePrincipalsResponse></soap:Body></soap:Envelope>

 MSDN referencehttps://msdn.microsoft.com/en-us/library/Microsoft.SharePoint.Utilities.SPUtility.SendEmail.aspx

Here is how you should get this working:

1.Edit the user profile properties in the user profile service application and add this external email address to one of the property. Please plan your user profile properties accordingly so that the next import doesn't override these fields that were updated      with the external email address. Finally, run the User Profile to SharePoint full synchronization job which will sync all your site collections user info table with these email addresses.

Please confirm that the users email address is actually resolving the user ID by creating the SharePoint 2013 workflows:). The logic here is to make sure that the site to which you are publishing the workflows recognizes this email address (external). Forthat matter a new user who is in your AD but hasn't been added to the SharePoint site also faces the same problem. That's the reason we are so specific in using "VALID SHAREPOINT USER"

2.We strongly recommend you to use/experience the new Workflow Manager (Workflow Foundation 4.0 for SharePoint 2013) as its more robust and delivers best performance over 2010. (A new feature always has advantages:))

However, if you wanted to use 2010 workflows as well, here is the work around:

a.Create a workflow called Email using SharePoint 2010 workflows on the same list so that you could utilize the fields and then add Email these users step. Select the external email addresses here (SharePoint 2010 workflows doesn't validate user   againstREST upon adding).

b.Design your 2013 workflows per your requirement but whenever you have to add a step "Email these users", call the 2010 workflow you just created before. 

This way, your 2013 workflow does the job for you and where ever you are calling the 2010 workflow within 2013 that does deliver the emails to the external users also. I have tested this and it works greatly.

 

Reference: https://blogs.msdn.com/b/sharepointdesigner/archive/2012/08/18/how-to-trigger-a-sharepoint-2010-workflow-from-a-sharepoint-2013-workflow.aspx

 

 

This article applies to SharePoint 2013 workflows. (Products: SharePoint 2013 & SharePoint online)

Comments

  • Anonymous
    January 01, 2003
    I am having trouble getting this to work in SharePoint Online for a mailbox that does not have a license assigned. Is it necessary to assign a SharePoint license to each email address?.
  • Anonymous
    January 01, 2003
    Hello Jason, Can you check if the user details are updated with the external email address on the site collection where you are creating the workflows?
  • Anonymous
    January 16, 2014
    Hi, I would recommend to use 'Send workflow with attachment' activity of 'Plumsail Workflow Activity Pack for SharePoint Online'. It can send emails to any external address. There are also many other interesting activities.http://plumsail.com/workflow-activity-pack
  • Anonymous
    February 10, 2014
    I added external email to workemail and still not working.
  • Anonymous
    April 09, 2014
    Rajeev, I try your method 1 and it not working. I verify user is in user information list. I click on user and show up my gmail account. SharePoint Designer still can't resolve it and email activity is not working.
  • Anonymous
    July 11, 2014
    Not working for us either, verified the e-mail address is in two fields and they are on the site. Still get the error.....have to say this is a terrible new feature.
  • Anonymous
    July 11, 2014
    On O365 I call a very simple 2010 workflow. The workflow is called with parameters of:
    EmailAddress
    And
    EmailBody.

    In the 2010 workflow I send an email using these parameters. Works like a charm for me.
  • Anonymous
    July 16, 2014
    El otro día en los foros de Office 365 comentaban este problema: la imposibilidad de enviar correos
  • Anonymous
    January 08, 2015
    The comment has been removed
  • Anonymous
    February 06, 2015
    Hello,

    I would like to know the same thing as Deepak Chauhan above.

    1-888-218-5560 SP Marketplace

    Thank you,

    Peter MacDonald
  • Anonymous
    June 11, 2015
    Before verifying/triggering emails to any external users, please create a simple workflow with email action and add the external users email address there. If you get an error, the workflow isn't going to send any emails. You need to ensure that the user to whom you are sending email is a part of the site collection (for 2013 workflows) and no special requirements for 2010 workflows.
  • Anonymous
    July 15, 2015
    The comment has been removed
  • Anonymous
    August 17, 2015
    The comment has been removed
  • Anonymous
    October 30, 2015
    This is one of the reasons why we continue to use 2010 workflows.
  • Anonymous
    November 30, 2015
    You can use for that purpose 3-rd party tools.
    For example our team VirtoSoftware developed Workflow Pack that supports 2013 and 2010 Workflows too and it contains Send email with attachment activity that allows you to send to any external recipient.
    Take a look here: http://www.virtosoftware.com/manual/workflow-activities-extensions-for-microsoft-sharepoint-designer/send-e-mail-with-attachments
  • Anonymous
    August 16, 2017
    Great post! Have nice day ! :) esodk