0

私はウィンドウアプリケーションを持っていて、その中で電子メール機能を使用しました。その中で、電子メール設定はapp.configファイルにあります。

<system.net>
<mailSettings>
  <smtp from="email@gmail.com">
    <network host="smtp.gmail.com" port="587" userName="username" password="password" enableSsl="true" />

  </smtp>
</mailSettings>
</system.net>

上記のセクションのコーディングを使用して変更したい..smtpのコーディングと設定ファイルのネットワークセクションを使用して変更する必要があります。

4

2 に答える 2

0

私はあなたがこれをプログラムで行う方法を尋ねていると思いますか?

ここに答えがあります:

C#を使用してGmailSMTPサーバーを介してメールを送信する

また、msdnサイトの良い例:

http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

これがあなたが求めていたものではないかどうか私に知らせてください。

編集:質問が明確になったら答えを表示するには:

ユーザー設定を使用せずに、実行時にapp.config設定を読み書きするにはどうすればよいですか?

幸運を

于 2012-12-08T07:08:37.557 に答える
0

私は解決策を見つけました...。

 FileInfo objFileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location + ".config");
            XmlDocument objXmlDoc = new XmlDocument();
            objXmlDoc.Load(objFileInfo.FullName);
            XmlElement objElement = objXmlDoc.DocumentElement;
            XmlNode objAppSettingNode = objElement.SelectSingleNode("appSettings");

            foreach (XmlNode appSetting in objAppSettingNode)
            {
                if (appSetting.Name.Equals("add"))
                {
                    appSetting.Attributes["value"].Value = txtEmailAddress.Text.Trim();
                }

            }

            XmlNode objMailSettingNode = objXmlDoc.DocumentElement.SelectSingleNode("system.net/mailSettings");
            if (objMailSettingNode != null)
            {
                foreach (XmlNode childNode in objMailSettingNode)
                {
                    if (childNode.Name.ToLower().Equals("smtp"))
                    {
                        childNode.Attributes["from"].Value = txtEmailAddress.Text.Trim();
                        foreach (XmlNode networkNode in childNode)
                        {
                            if (networkNode.Name.ToLower().Equals("network"))
                            {
                                networkNode.Attributes["host"].Value = txtSmtp.Text.Trim();
                                networkNode.Attributes["userName"].Value = txtEmailAddress.Text.Split('@')[0].Trim();
                                networkNode.Attributes["password"].Value = txtPassword.Text.Trim();
                                networkNode.Attributes["port"].Value = txtPort.Text.Trim();
                            }
                        }
                    }
                }
            }

            objXmlDoc.Save(objFileInfo.FullName);
            lblErrormsg.Text = string.Empty;
            this.Close();
于 2012-12-10T06:03:19.517 に答える