使用 SailThru .NET 库向密件抄送发送电子邮件所需的语法是什么? [已关闭]

问题描述 投票:0回答:1

我正在使用 SailThru 的 .NET 库来使用 C# 发送电子邮件。我似乎找不到向密件抄送收件人发送电子邮件的方法。

我查看了SailThru 的文档,但找不到如何在 C# 中执行此操作。

这就是我的非工作代码的样子:

SailthruClient client = new SailthruClient(apiKey, secret);
Sailthru.SailthruResponse response;

Hashtable htHashtable = new Hashtable();
htHashtable.Add("FirstName", "Alfred");
htHashtable.Add("LastName", "Neuman");

Hashtable htOptions = new Hashtable();
Hashtable htSubtable = new Hashtable();
Hashtable htBCC = new Hashtable();
htBCC.Add("Bcc", "[email protected]");
htSubtable.Add("headers", htBCC);
htOptions.Add(0, htSubtable);

response = client.Send("SampleTemplate",    
        "[email protected]", htHashtable,    
       htOptions);

使用此库添加密件抄送电子邮件收件人的适当语法是什么?

c# .net email syntax
1个回答
0
投票

根据源代码中的.NET客户端备注,您使用的重载方法不支持通过

htOptions
发送到多个电子邮件:

请注意,htOptions 参数不允许传递电子邮件标头。要指定电子邮件标头,请使用采用 SendRequest 参数的 Send 方法

因此,而不是

public SailthruResponse Send(
                 string strTemplateName,
                 string strEmail,
                 Hashtable htVars = null,
                 Hashtable htOptions = null)

你应该使用:

public SailthruResponse Send(SendRequest request)

您可以创建

request
对象并将其作为参数传递给
Send()
,方法如下。重要的是要输入“Bcc”,而不是“BCC”或“bcc”,如果有很多地址,请用逗号分隔它们,不带空格:

SendRequest request = new SendRequest
    {
        Email = "[email protected]",
        Template = "SampleTemplate",
        Vars = new Hashtable
        {
            ["FirstName"] = "Alfred",
            ["LastName"] = "Neuman"
        },
        Options = new Hashtable
        {
            ["headers"] = new Hashtable
            {
                ["Bcc"] = "[email protected],[email protected]"
            }
        }
    };

response = client.Send(request);

正如 @PeterB 在 comment 中所说,对于 REST API,有一个可选参数 Bcc:

密件抄送:在密件抄送中包含电子邮件地址。密件抄送必须大写。请注意,应谨慎使用密件抄送,因为某些电子邮件域会在垃圾邮件过滤器中防范密件抄送。如果包含多个地址,请用逗号分隔。

在实际的 JSON 请求中应该如下所示:

"options":{"headers":{"Bcc":"[email protected],[email protected]"}}

我使用了测试方法 Send 的修改版本(源代码此处),当构建 post 请求时,它生成了一个 JSON 对象,其属性选项的格式与 REST API 文档中指定的格式相同,因此我认为应该有效:

但是,请注意,我无法针对 SailThru API 进行实际测试,因为我没有 SailThru 帐户和发出实际请求所需的 apiKey,而且我也找不到公共测试 API。

© www.soinside.com 2019 - 2024. All rights reserved.