【问题标题】:How to ignore empty key = value in an INI file如何忽略 INI 文件中的空键 = 值
【发布时间】:2021-01-14 18:04:53
【问题描述】:

我有一个读取 ini 文件的设置,以获取要插入发送电子邮件布局的信息。 我的问题是,如果 ini 文件在 ccto 和 bccto 区域有任何空白点,它将不会发送电子邮件。如果我//这些线条对我来说确实很完美。所以我很难过。是的,是 c# 的新手

INIFile inif = new INIFile(@"c:\test\mailsettings.ini");

try
{
     MailMessage mail = new MailMessage();
     SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
     mail.From = new MailAddress("reports@xxxxx.com");
     mail.To.Add(inif.Read("Properties", "personto"));
     mail.CC.Add(inif.Read("Properties", "ccto"));
     mail.Bcc.Add(inif.Read("Properties", "bcto"));
     mail.Subject = inif.Read("Properties", "site") + " End Of Day Report";
     mail.IsBodyHtml = true;
     mail.Body = "Greetings, attached is your End-of-Day Report.<br/> If you have any questions or concerns about this report please contact VersiPOS Client Services at support@versipos.com or by calling us at (800) 655-7349.<br/> + <img src='C:\\test\\1.jpg'/>";
}

【问题讨论】:

  • 很简单,添加前检查值。

标签: c# ini


【解决方案1】:

先检查这两个值的内容,如果有值就添加,否则保持为空,不影响邮件发送。

INIFile inif = new INIFile(@"c:\test\mailsettings.ini");

            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
                mail.From = new MailAddress("reports@xxxxx.com");
                mail.To.Add(inif.Read("Properties", "personto"));
                var ccto = inif.Read("Properties", "ccto");
                if (!String.IsNullOrWhiteSpace(ccto))
                    mail.CC.Add(ccto);
                var bcto = inif.Read("Properties", "bcto");
                if (!String.IsNullOrWhiteSpace(bcto))
                    mail.Bcc.Add(bcto);
                mail.Subject = inif.Read("Properties", "site") + " End Of Day Report";
                mail.IsBodyHtml = true;
                mail.Body = "Greetings, attached is your End-of-Day Report.<br/> If you have any questions or concerns about this report please contact VersiPOS Client Services at support@versipos.com or by calling us at (800) 655-7349.<br/> + <img src='C:\\test\\1.jpg'/>";
            }

【讨论】:

  • 它们并不总是在那里有价值。而ini文件是这样的。 [属性] site=eric 的搞笑演示 personto=keith@xxxx.com ccto= bcto=
  • 是的,这正是您要先检查的原因,然后再将空字符串直接添加到有问题的邮件属性中。
  • 是的,为此需要做什么?
  • 也许我不明白你在问什么。您说如果您注释掉设置了 ccto 和 bcto 的那 2 行,它会起作用,并且您说当这两个在 .ini 文件中没有值时会出现问题,因此代码会在将它们添加到之前检查是否有空格物体。你是说它仍然不适用于那些 if 语句?
  • 对不起,如果我在代码中这样做,它可以工作 "// mail.CC.Add (data["Properties"]["ccto"]);"或者如果我将它们从 ini 文件中完全删除,它可以正常工作。但我确实需要它们,因为我不知道每个站点需要什么。
猜你喜欢
  • 2022-10-25
  • 1970-01-01
  • 2023-03-07
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 2014-05-08
  • 2012-01-15
相关资源
最近更新 更多