2

以下はメールを送信するための私のコードです...

 public void SendBy(string to, string subject, string body)
{
    MailMessage nM = new System.Net.Mail.MailMessage();

    nM.To.Add("abc@compulynx.org");
    nM.Subject = subject;
    nM.Attachments.Add(new Attachment(oStream, Fname));
    nM.Body = body;
    System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
    System.Net.Configuration.MailSettingsSectionGroup settings = (System.Net.Configuration.MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");

    SmtpClient client = new SmtpClient(settings.Smtp.Network.Host);
    client.Credentials = new NetworkCredential(settings.Smtp.Network.UserName, settings.Smtp.Network.Password);

    client.EnableSsl = true;
    client.Send(nM);
}

これは私のWeb構成コードです...

<system.net>
     <mailSettings>
        <smtp deliveryMethod="Network" from="xyz@gmail.com" >
            <network host="smtp.gmail.com" 
                    defaultCredentials="false" userName="xyz@gmail.com" password="xyz"
                    port="587"/>
        </smtp>
    </mailSettings>
</system.net>

このコードは正常に機能していますが、送信者の表示名を変更する方法は、通常、次のように使用します

 mM.From = new MailAddress("xyz@gmail.com","xyz");

しかし、私の場合、送信者のメールアドレスをどこにも書き込んでいません。Web設定から取得しているので、その名前を変更する方法を教えてください。セッションに現在のログインユーザーがいるので、その名前を送信者として表示したいと思います。 ..

4

2 に答える 2

6

タグからsmtpに配置する必要があります

<smtp deliveryMethod="Network" from="XYZ&lt;xyz@gmail.com&gt;">
<network host="smtp.gmail.com" 
                defaultCredentials="false" userName="xyz@gmail.com" password="xyz"
                port="587"/>
于 2012-10-25T07:45:53.737 に答える
0

web.config で次のように設定できます。

<network host="smtp.gmail.com" 
         defaultCredentials="false" 
         userName="&quot;xyz&quot;&lt;xyz@gmail.com&gt;"
         password="xyz" 
         port="587"/>

MailAddressのサポートされている形式を参照してください。

于 2012-08-27T08:22:10.213 に答える