質問

私は、noreply@company.comからEメールを送信するタイマージョブを書いています。これは、そのアドレスを自分の人物として表示されます。

「表示名」を表示する方法はありますか。例えば、私から受信したすべての電子メールはPaul Matthewsを表示しません。(この場合、私は知っていることはおそらく広告と交換との関係にある)です。

私が使用しているコードは以下の通りです。

var emailFromAddress = _properties["EmailFromAddress"].ToString();
           var emailToAddress = _properties["EmailDistributionGroup"].ToString();
           var webAddress = _properties["WebSiteOfLibrary"].ToString();

           var subject = "New Report - " + DateTime.Now.ToString("dd MMM yyyy");

           StringDictionary messageHeader = new StringDictionary();
           messageHeader.Add("to", emailToAddress);
           messageHeader.Add("from", emailFromAddress);
           messageHeader.Add("subject", subject);
           messageHeader.Add("content-type", "text/html");

           using (SPSite site = new SPSite(webAddress))
           {
               using (SPWeb web = site.OpenWeb())
               {
                   DateTime timeNow = DateTime.Now;
                   var sb = new StringBuilder();
                   sb.Append(
                       "<STYLE TYPE='text/css'>body, html{font-color:#000;font-family:arial;font-size:8.0pt}</STYLE>");
                   sb.AppendFormat("<div style='font-size:11pt;font-family:calibri'>Results between {0} and {1}</div><br/><br/>", LastRun.ToString("dd MMM yyyy hh:mm tt"), timeNow.ToString("dd MMM yyyy h:mm tt"));
                   sb.AppendFormat("<div style='font-size:11pt;font-family:calibri'>Total: {0}<br/><br/>", total);
                   sb.AppendLine(HTMLResults);

                   SPUtility.SendEmail(web, messageHeader, sb.ToString());
               }
           }
.

事項は、電子メールアドレスはnoreply@company.comでなければなりません。これを複数のアプリケーションに使用しますので、表示名はアプリケーションの名前を反映する必要があります。

役に立ちましたか?

解決

System.netを使用することをお勧めします。.mail.mailMessage 抑止の代わりにオブジェクト。SPUtility.SendEmailは良いショートカットですが、あなたが見たように、あなたはメッセージがどのように送信されフォーマットされているかについて多くのコントロールを失います。MailMessageオブジェクトはあなたにそれを返すが、ちょうど小さなビットの仕事を必要とします。

あなたの特定の質問に答えるために、MailAddressオブジェクトはEメールアドレスと名前の組み合わせのフォーマットを処理するので、あなたのアプリケーション名を下記の 'fromname'として使用する必要があるでしょう。

MailMessage msg = new MailMessage();

msg.From = new MailAddress(web.Site.WebApplication.OutboundMailSenderAddress, fromName);
msg.To.Add(new MailAddress(to));
msg.Subject = subject;
msg.Body = message;
msg.IsBodyHtml = true;
msg.BodyEncoding = System.Text.Encoding.UTF8;

SmtpClient server = new SmtpClient(web.Site.WebApplication.OutboundMailServiceInstance.Server.Address);

server.Send(msg);
.

他のヒント

送信者のメールアドレスをカスタマイズしたい場合は、Sputility.Sendemailを使用できません - システム.Net.Mailフレームワーククラスを使用する必要があります。

カバーの下で、sputilityは "removefriendlynamefromemailaddress"という名前のメソッドを呼び出します。(

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top