You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Infobip Email API+RestSharp发带附件邮件?C#替代MultipartFile方案

解决Infobip Email API附件上传错误(C# RestSharp实现)

错误原因

你收到的错误是因为请求中把附件参数传递成了字符串类型,而Infobip API期望的是多部分表单格式的文件列表(对应Java的MultipartFile集合),无法将字符串转换为所需的文件对象。

C#中对应的替代类

在RestSharp里,使用FileParameter类来替代Java的MultipartFile,它专门用于封装文件上传的元数据(二进制内容、文件名、MIME类型等),适配multipart/form-data格式的文件上传请求。

正确的代码实现示例

using RestSharp;
using System.IO;

// 初始化RestClient
var infobipClient = new RestClient("https://api.infobip.com/email/1/send");
// 设置请求头(添加你的API密钥等认证信息)
infobipClient.AddDefaultHeader("Authorization", "App YOUR_API_KEY");
infobipClient.AddDefaultHeader("Content-Type", "multipart/form-data");

var sendRequest = new RestRequest(Method.POST);

// 添加邮件核心参数
// 注:如果API不支持批量收件人,需循环遍历收件人列表逐个发送
sendRequest.AddParameter("to", "recipient1@domain.com");
sendRequest.AddParameter("from", "your-sender@domain.com");
sendRequest.AddParameter("subject", "带附件的测试邮件");
sendRequest.AddParameter("text", "这是一封包含附件的测试邮件");

// 构建并添加附件
// 读取文件字节
byte[] fileContent = File.ReadAllBytes(@"C:\path\to\your\document.pdf");
// 创建FileParameter实例,第一个参数对应API的"attachment"字段名
var attachment = FileParameter.Create(
    name: "attachment",
    data: fileContent,
    fileName: "document.pdf",
    contentType: "application/pdf"
);
// 将附件添加到请求中
sendRequest.AddFile(attachment);

// 发送请求并处理响应
var response = infobipClient.Execute(sendRequest);

关键注意事项

  • 当添加多个附件时,只需重复创建FileParameter并调用AddFile即可,RestSharp会自动处理多文件的表单格式。
  • 针对多收件人问题:如果Infobip API本身不支持批量收件人参数,需遍历收件人列表,为每个收件人单独发起请求;部分API允许用逗号分隔多个收件人地址,可先测试该方式是否可行。
  • 确保认证信息(如API密钥)正确添加到请求头,避免权限错误。

内容的提问来源于stack exchange,提问作者Matija Sestak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:17:22