问题  帮助设置

kwhelchel.

众所周知的成员
加入
2月28日,2020年2月28日
消息
51
编程经验
Beginner
好吧,我难以置信在这个问题上。在这里的图像中,仪表板是我的主要,sendmail只是一个班级。现在我想做的就是这样。仪表板是我的配置设置页面,那么sendemail是从BAT文件触发发生的操作。所以可以首先完成,第二个是必要的吗? AKA呼吁该程序是什么。只需要指向正确的方向。

谢谢

发送HELP.PNG.
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,718
地点
切萨皮克,va.
编程经验
10+
任何东西都可以用软件完成。问题是你愿意扔多少时间,努力和资金。

如果您需要Winforms程序才能调用SendMail类中的方法,然后只需调用方法。为什么甚至用批处理文件击败灌木丛以触发发送邮件。无论如何,我们真的不能给你带来很多建议,因为我们无法在sendmail.cs中看到代码也不在您的仪表板中看到。请在代码标签中发布代码中的代码,以便我们更好地建议您。
 

kwhelchel.

众所周知的成员
加入
2月28日,2020年2月28日
消息
51
编程经验
Beginner
好的,我可以获得代码,但此时发送邮件部分的触发点来自另一个触发批处理文件的软件。

DashBoard:
namespace Versi_Send_Email
{
    public partial class DashBoard : Form
    {

        public DashBoard()
        {
            InitializeComponent();
        }
        
        private void DashBoard_Load(object sender, EventArgs e)
        {
            INIFile inif = new INIFile(@"c:\test\mailsettings.ini");
            sitetxtbox.Text = inif.Read("Properties", "site");
            emailtotxtbox.Text = inif.Read("Properties", "personto");
            cctotxtbox.Text = inif.Read("Properties", "ccto");
            bcctextbox.Text = inif.Read("Properties", "bcto");
        }


        private void updatebtn_Click(object sender, EventArgs e)
        {
 
            string siten = sitetxtbox.Text;
            sitetxtbox.Text = "siten";

            string personto = emailtotxtbox.Text;
            sitetxtbox.Text = "personto";

            string ccto = cctotxtbox.Text;
            sitetxtbox.Text = "ccto";

            string bcto = bcctextbox.Text;
            sitetxtbox.Text = "bcto";

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

            inif.Write("Properties", "site", $"{siten}");
            inif.Write("Properties", "personto", $"{personto}");
            inif.Write("Properties", "ccto", $"{ccto}");
            inif.Write("Properties", "bcto", $"{bcto}");

 
            MessageBox.Show("Settings Have Been Updated");



        }


    }
}
class INIFile
{
    private string filePath;

    [DllImport("kernel32")]
    private static extern long WritePrivateProfileString(string section,
    string key,
    string val,
    string filePath);

    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section,
    string key,
    string def,
    StringBuilder retVal,
    int size,
    string filePath);

    public INIFile(string filePath)
    {
        this.filePath = filePath;
    }

    public void Write(string section, string key, string value)
    {
        WritePrivateProfileString(section, key, value.ToLower(), this.filePath);
    }

    public string Read(string section, string key)
    {
        StringBuilder SB = new StringBuilder(255);
        int i = GetPrivateProfileString(section, key, "", SB, 255, this.filePath);
        return SB.ToString();
    }

    public string FilePath
    {
        get { return this.filePath; }
        set { this.filePath = value; }
    }
}


send email portion:
namespace Versi_Send_Email
{
    class sendmail
    {
      //  string[] args = Environment.GetCommandLineArgs();

          //      foreach(string arg in Args)
        //    {
                // do stuff
      //      }

        private static Timer _timer = new Timer();

        public sendmail()
        {

            _timer.Tick += _timer_Tick;
            _timer.Interval = 5000; // 5 seconds
            _timer.Start();

        }
        void _timer_Tick(object sender, EventArgs e)
        {
            // Exit the App here ....
            Application.Exit();
            {
                INIFile inif = new INIFile(@"c:\test\mailsettings.ini");
                Console.WriteLine("The Value is:" + inif.Read("Properties", "site"));

                try
                {
                    MailMessage mail = new MailMessage();
                    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
                    mail.From = new MailAddress("[email protected]");
                    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 = false;
                    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 [email protected] or by calling us at (800) 655-7349.<br/> + <img src='C:\\test\\1.jpg'/>";


                    System.Net.Mail.Attachment attachment;
                    attachment = new System.Net.Mail.Attachment(@"c:\test\zenni.pdf");
                    mail.Attachments.Add(attachment);

                    SmtpServer.Port = 587;
                    SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "VersieR<GS5W");
                    SmtpServer.EnableSsl = true;

                    SmtpServer.Send(mail);
                    //  MessageBox.Show("mail Send");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }

            }
        }

        class INIFile
        {
            private string filePath;

            [DllImport("kernel32")]
            private static extern long WritePrivateProfileString(string section,
            string key,
            string val,
            string filePath);

            [DllImport("kernel32")]
            private static extern int GetPrivateProfileString(string section,
            string key,
            string def,
            StringBuilder retVal,
            int size,
            string filePath);

            public INIFile(string filePath)
            {
                this.filePath = filePath;
            }

            public void Write(string section, string key, string value)
            {
                WritePrivateProfileString(section, key, value.ToLower(), this.filePath);
            }

            public string Read(string section, string key)
            {
                StringBuilder SB = new StringBuilder(255);
                int i = GetPrivateProfileString(section, key, "", SB, 255, this.filePath);
                return SB.ToString();
            }

            public string FilePath
            {
                get { return this.filePath; }
                set { this.filePath = value; }
            }
        }

    }

}
 
最佳 底部