sharepoint - usa - plantillas microsoft flow
Envío de correos electrónicos en Sharepoint (4)
Necesito saber cuál es la mejor práctica para enviar correos electrónicos desde mis sitios web sharepoint y / o funciones personalizadas.
¿Debería usar las clases .Net normales para enviar correos electrónicos? ¿o es una mejor manera de hacerlo a través de la integración con un servidor de Outlook?
La forma más fácil es usar las Utilidades incorporadas, esto usará la configuración de ajustes del servidor de correo en el administrador central
using Microsoft.SharePoint.Utilities;
SPUtility.SendEmail(SPContext.Current.Web, false, false,
"[email protected]", "subject",
"body");
La forma universal de enviar correo electrónico en cualquier contexto (donde SPWeb no está disponible) se lee en la configuración de OutboundMailService
que se utiliza en SPUtility
. Luego crea SmtpClient manualmente:
var adminApp = SPAdministrationWebApplication.Local;
var instance = adminApp.OutboundMailServiceInstance;
var server = instance.Server.Address;
var defaultFrom = adminApp.OutboundMailSenderAddress;
var client = new SmtpClient();
client.Host = server;
message.From = new MailAddress(defaultFrom );
...
También puede usar este código para la identificación de correo dinámico. este código recibe el correo según el usuario. He utilizado la consulta CAML para obtener los datos del contenido del correo electrónico de las listas.
SPUser AssigUser = oWeb.EnsureUser(Assigned_Username);
SPQuery mquery = new SPQuery();
mquery.Query = @"<Where><Eq><FieldRef Name=''Email_x0020_Type'' />
<Value Type=''Text''>Review - Ready for Review</Value>
</Eq></Where>";
string Emailsub = "";
string Emailbody = "";
SPList mList = oWeb.Lists["Email Content"];
SPListItemCollection itemcollection = mList.GetItems(mquery);
foreach (SPListItem item in itemcollection)
{
Emailsub = item["Email Subject"].ToString();
Emailbody = item["Email Content"].ToString();
SPUtility.SendEmail(oWeb, false, false, AssigUser.Email, Emailsub,
Emailbody + "</br>" + oWeb.Url);
break;
}
usando sobrecarga con argumentos StringDictionary ( fuente )
StringDictionary headers = new StringDictionary();
headers.Add("to", currCtxt.Web.CurrentUser.Email);
headers.Add("cc", "[email protected]");
headers.Add("bcc", "");
headers.Add("from", "[email protected]");
headers.Add("subject", "Email Subject");
headers.Add("content-type", "text/html");
string bodyText = "Hello how are you?";
SPUtility.SendEmail(currCtxt.Web, headers, bodyText.ToString());