PCB 后台自动系统集成与邮件推送实现

在PCB行业中,工程系统是主要数据生产者,而这些数据不仅仅给自己系统使用呀,我们需要将数据传递到各系统,才达到各系统共同协作的目的。

这里以问答方式对实现方式进行讲解。呵呵呵!

后台自动集成问题解答:

一.工程系统中数据是主动推送还是被动拉取?

工程系统中的数据通常采用是主动推送到各系统中去的(MES,OMS,APS,ADD,ERP,集成平台)

二.工程系统与多少个系统集成,集成关系图是怎么的呢?

目前工程与6个系统有集成关系,集成关系图如下所示。

三.怎么实现后台自动集成的?

当工程MI流程指示上网或某一个节点的状态完成后,即开始将工程数据与状态节点信息等集成到公司各系统

我们制作了一个后台定时检测节点状态已完成了但数据集成未成功生产型号,

并将这些未集成成功的型号筛选出来放进待自动集成的订单池中,在后台定时任务进行跑集成.

四.采用什么的方式进行定时任务?

我们采用的是Windows任务计划程序,将集成的程序挂在任务计划程序上面,进行定时触发批量集成程序 ,由于此工具稳定可靠,所以采用了此方式实现。

五.由于数据集成是后台集成,是否有界面供用户可以可以查看集成状态呢?

那当然啦,这是系统上设计最基本的,我们增加了一个模块专用于所有监控集成的状态信息.

六.由于是后台自动集成,是否有预警功能,当集成失败后是否通知到对应的人处理?

有呀,目前设置的次数是:当集成失败次数大于3次时,后台自动发送邮件通知对应的人处理。

这是发送样例:

七.后台自动邮件用的哪种方式发送?

采用的是配置公司邮件主机IP与端口号的方式发送邮件

代码如下(不需要安装客户端):

   /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="mailSubjct">邮件主题</param>
        /// <param name="mailBody">邮件正文</param>
        /// <param name="mailFrom">发送者</param>
        /// <param name="mailAddress">接收地址列表</param>
        /// <param name="HostIP">主机IP</param>
        /// <param name="filename">附件名</param>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="ssl">加密类型</param>
        /// <returns></returns>
        public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string HostIP, string filename, string username, string password, bool ssl)
        {
            string str = "";
            try
            {
                MailMessage message = new MailMessage
                {
                    IsBodyHtml = false,
                    Subject = mailSubjct,
                    Body = mailBody,

                    From = new MailAddress(mailFrom)
                };
                for (int i = 0; i < mailAddress.Count; i++)
                {
                    message.To.Add(mailAddress[i]);
                }
                if (System.IO.File.Exists(filename))
                {
                    message.Attachments.Add(new Attachment(filename));
                }
                SmtpClient client = new SmtpClient
                {
                    EnableSsl = ssl,
                    UseDefaultCredentials = false
                };
                NetworkCredential credential = new NetworkCredential(username, password);
                client.Credentials = credential;
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.Host = HostIP;
                client.Port = 0x19;
                client.Send(message);
            }
            catch (Exception exception)
            {
                str = exception.Message;
            }
            return str;
        }

八.为什么不采用OutLook邮件发送?

原因1:由于自动集成的任务布署在服务端,没有安装OutLook

原因2:哪怕服务端安装了OutLook客户端也不建议采用,后台自动推送邮件不适合用OutLook,

OutLook最佳应用场景:工程系统采用的是CS架构,在C端执行某个功能按钮后,需要发邮件通知对方,可以采用此方式实现。

并且可以在发件箱中查看已发送的邮件信息哦。

代码如下(需安装OutLook客户端):

        /// <summary>
        /// OutLook发送邮件方法
        /// </summary>
        /// <param name="mailFrom">发件人,无实际效果</param>
        /// <param name="sendTo">收件人</param>
        /// <param name="copyTo">抄送,以字符‘;‘分割</param>
        /// <param name="subject">主题</param>
        /// <param name="body">邮件内容</param>
        /// <param name="isFj">是否有附件</param>
        /// <param name="FjPath">附件地址</param>
        /// <returns></returns>
        public static string OutlookSendMail(string mailFrom, string sendTo, string copyTo, string subject, string body, bool isFj, string FjPath)
        {
            StringBuilder buff = new StringBuilder();
            string[] mailccAddressList = copyTo.Split(‘;‘);
            for(int i=0;i< mailccAddressList.Length;i++)
            {
                buff.AppendFormat("{0}<{1}> ; ", "", mailccAddressList[i]);
            }
            Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();
            try
            {
                Microsoft.Office.Interop.Outlook.MailItem newMail = (Microsoft.Office.Interop.Outlook.MailItem)outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
                newMail.To = sendTo;
                newMail.Subject = subject;
                newMail.CC = buff.ToString();
                newMail.Body = body;
                if (isFj)
                {
                    foreach (var FjPath_ in FjPath.Split(‘;‘))
                    {
                        newMail.Attachments.Add(FjPath_);
                    }

                }
                newMail.Send();
                return "成功";
            }
            catch(Exception ex)
            {
                return ex.Message;
            }
        }

写到最后:事在人为,只要去想做,总有办法,不想去做总要理由

原文地址:https://www.cnblogs.com/pcbren/p/9501179.html

时间: 2024-10-10 00:06:33

PCB 后台自动系统集成与邮件推送实现的相关文章

【初码干货】使用阿里云邮件推送服务架设自己邮件验证与推送体系

提示:阅读本文需提前了解的相关知识 1.电子邮件协议(http://baike.baidu.com/view/2367542.htm) 2.阿里云邮件推送(https://www.aliyun.com/product/directmail) 3.EDM(电子邮件营销)(http://baike.baidu.com/subview/1212416/8602812.htm) 4.SendCloud邮件服务(http://sendcloud.sohu.com/) 阅读目录结构 引: 一.需求分析 二.

用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇

在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还是很耐心的. 最终结论,是由于MailKit发送了两次EHLO命令,查看了MailKit源码后竟然发现,里面写了硬编码: if (host != "smtp.strato.de" && host != "smtp.sina.com") Ehlo (can

阿里云邮件推送服务

提起邮件服务,最早之前一般自建邮件服务器,需要硬软件和运维的支持,稳定性也难保证,随着云服务的普及邮件推送功能的服务化是趋势,也省钱省事省心. 最早开始用过搜狐邮件服务,阿里云生态现在基本都出现了,我们来尝试一下阿里云的邮件推送服务: 一.阿里云控制台操作 首先在阿里云邮件推送控制台添加域名,然后在自己的dns服务器中添加如下的解析(根据控制台中的“配置”): 一个主机名为aliyundm的TXT记录,用于验证域名所有权 一个主机名为空.值为v=spf1 include:spf1.dm.aliy

解决.NET Core中MailKit无法使用阿里云邮件推送服务的问题

在博问中(.net core怎么实现邮件发送)知道了MailKit无法使用阿里云邮件推送服务发送邮件的问题,自已实测也遇到同样的问题,而用自己搭建的邮件服务器没这个问题. 于是,向阿里云提交了工单...在提供了TCP抓包数据后,阿里云技术专员发现了问题所在:在认证通过后,MailKit发送了EHLO命令,然后才发送MAIL FROM命令,服务器在收到EHLO时会重置客户端的认证状态,所以后续的命令过来时,服务器认为客户端没有认证,于是报错“503 Bad sequence of commands

RedMine项目管理系统邮件推送设置(Windows环境)

RedMine项目管理系统有邮箱推送功能,当Bug,安全漏洞等内容被修改.解决.评论的时候,系统会通过邮件 及时的通知你的团队和客户.邮件通知的环节.形式.时间.接受人均可定制,功能十分实用. 下面是针对windows系统环境下安装的RedMine时,邮件推送的配置说明. (1)登录后点击[管理]-> [用户] (2)选中要收取邮件推送的用户登录名 (3)在[邮件通知]标签中的“不收取任何通知”改为“收取我的项目的所有邮件”,如下图所示 设定“收取我的项目的所有邮件”后保存即可. 另外,可以选的

如何做好网站邮件推送?

如何做好网站邮件推送? 关键词 文章的版权 洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:如何做好网站邮件推送?:http://www.splaybow.com/post/seo-mail-delivery.html 摘要 <p>如何做好网站邮件推送?对于一个网站的推广而言,邮件推送是一个利器!定期给用户发送一些他们感兴趣的邮件,有利于提高用户的粘滞度.读了一篇Fimen写的文章,然后做一些自己的总结.<br

阿里云邮件推送及邮件发送测试

工具:域名(推荐二级域名).阿里云企业邮箱,开通及解析过程下文有记录 一.邮件推送 在域名解析处解析一个二级域名,用作邮件域名,如mail.danny.com(danny.com是主域名) 进入邮件推送控制台 上图是解析验证通过之后的截图 点击配置会提示如何配置解析 在域名解析处按照上图要求配置解析,返回点击验证通过即可 二.阿里云企业邮箱 点击链接注册购买免费企业邮箱 进入控制台企业邮箱设置解析,记得重置密码(邮箱密码) 添加如下设置(注意:此文档针对的是主域名文档,二级域名除了邮箱解析 im

jenkins持续集成Allure生成报表+邮件推送

本次基于<jenkins 生成HTML报表,邮件推送>的基础上将生成HTML报表修改为Allure生成报表,可以参考官方文档:https://docs.qameta.io/allure/#_jenkins 1.启动tomcat登录jenkins 2.Install the latest version of Allure Plugin from "Plugin Manager" page. 3.(1)Open Plugin Advanced Settings (at <

基于微信的邮箱新邮件推送

基于微信的邮箱新邮件推送 最近主要做了2个东西: 合肥医保口罩购买预约网站分析 通过微信推送邮箱新邮件来信提醒 第一个因为网站已经下线,当时也没截图,导致想写过程,没素材.所以来写写通过微信推送邮箱的来信提醒. 一.背景 估计有人会问我在手机上登录邮箱账号,邮箱来信不自然能收到提醒吗? 主要是最近小丸子同学的公司邮箱在苹果手机上新邮件推送延迟.经常收到2天前的邮件提醒,如果不进入邮箱app主动收取邮件,根本不知道有邮件过来.对此小丸子同学也是跟我抱怨和很久,一直以为是手机坏了.最后分析了一下,确