电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

使用API发送邮件并携带附件

来源:金蝶云社区作者:金蝶2024-09-233

使用API发送邮件并携带附件

有很多需求需要在APP层发邮件,但是系统自带的SendMailServiceHelper.Send()需要参数view,怎么办呢?

下面的代码展示在操作服务插件中用当前登陆用户发送邮件,并包含pdf附件。pdf有单据的默认套打模板生成。

1. 在当前用户的个人信息中配置邮箱信息。


2. 插件代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Kingdee.BOS;

using Kingdee.BOS.Util;

using Kingdee.BOS.Contracts;

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.Bill;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Core.Metadata.EntityElement;

using Kingdee.BOS.Core.Metadata.FormElement;

using Kingdee.BOS.BusinessEntity;


namespace K3Cloud.ServicePlugIn

{

    /// <summary>

    /// 在操作服务插件中发送邮件

    /// </summary>

    public class SendMailDemo : AbstractOperationServicePlugIn

    {

        /// <summary>

        /// 发送邮件

        /// </summary>

        /// <param name="formId">单据formId</param>

        /// <param name="ids">单据内码数组</param>

        private void SendMail(string formId, string[] ids)

        {

            if (ids.IsEmpty()) return;

            string pkValue = ids.FirstOrDefault();

            var view = CreateView(this.Context, formId, pkValue);

            Kingdee.BOS.Core.Import.IImportView importView = view as Kingdee.BOS.Core.Import.IImportView;

            if (importView == null)

            {

                return;

            }


            importView.AddViewSession();//重要,不能删除

            try

            {

                string[] toEmails = new string[] { "T1@kingdee.com", "T2@kingdee.com", "T3@kingdee.com" };

                ISendMailService service = ServiceFactory.GetService<ISendMailService>(this.Context);

                //当前用户给toEmails发送邮件并包含pdf的附件。

                //pdf有单据的默认套打模板生成

                var result = service.Send(view, "邮件标题", "邮件内容", toEmails, ids, true, false);

                if (result.Successful)

                {

                    Kingdee.BOS.Log.Logger.Info("SendMail", "邮件发送成功");

                }

                else

                {

                    Kingdee.BOS.Log.Logger.Info("SendMail", "邮件发送失败。原因:" + result.Message);

                }

            }

            catch (Exception ex)

            {

                Kingdee.BOS.Log.Logger.Error("SendMail", "邮件发送失败", ex);

            }

            importView.RemoveViewSession();

        }

        /// <summary>

        /// 创建View

        /// </summary>

        /// <param name="ctx"></param>

        /// <param name="formId"></param>

        /// <param name="pkValue"></param>

        /// <returns></returns>

        pr

使用API发送邮件并携带附件

有很多需求需要在APP层发邮件,但是系统自带的SendMailServiceHelper.Send()需要参数view,怎么办呢?下面的代码展示在操作服务插件中用当...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信