私は、共有ポイントWebパーツやカスタマイズされた機能からメールを送信するためのベストプラクティスを知る必要があります。Sharepointでメールを送信
通常の.Netクラスを使用して電子メールを送信するだけでいいですか?またはOutlookサーバーとの統合を通じてこれを行うより良い方法ですか?
私は、共有ポイントWebパーツやカスタマイズされた機能からメールを送信するためのベストプラクティスを知る必要があります。Sharepointでメールを送信
通常の.Netクラスを使用して電子メールを送信するだけでいいですか?またはOutlookサーバーとの統合を通じてこれを行うより良い方法ですか?
簡単な方法は、これはその後、(利用できませんSPWeb)がOutboundMailService
を読まれる任意のコンテキストで電子メールを送信するために、中央管理者に
using Microsoft.SharePoint.Utilities;
SPUtility.SendEmail(SPContext.Current.Web, false, false,
"[email protected]", "subject",
"body");
ユニバーサル方法をメールサーバsetttingsセットアップを使用するユーティリティに建て使用することですSPUtility
で使用される設定。次に、SmtpClientを手動で作成します。
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);
...
このコードを動的メールIDに使用することもできます。このコードはユーザーに応じてメールを取得します。私はリストから電子メールコンテンツのデータを取得するためにCAMLクエリを使用しました。
StringDictionary引数( source)とのオーバーロードを使用して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;
}
このコードはいつ役に立つのか説明できますか?それは非常に具体的なようで、受け入れられた答えには何も追加しません。もちろん、リストや現在のユーザーからパラメータを取得することができます...多分私はここでポイントを見逃しています。 – Kobi
電子メールのコンテンツは別のリストに保存されています。このcamlクエリを使用すると、コンテンツを取得して電子メールに使用できます。 –
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());
これは、CAの管理者に指定されたからアドレスを使用しています。あなたがアドレスからのカスタムをしたい場合は、通常の.netクラスを使ってください。 – ArjanP