Skip to main content

轻松使用 SendGrid 完成邮件发送

· 7 min read
Bayes
Bayes

核心指标

发送邮件的几个核心指标

  • 送达率【不被邮箱提供商识别为垃圾邮件】
  • 点击率 【点击等行为有完善的webhook事件】
  • 转化率【方便业务部门追踪】
  • 可靠性【发送失败后是否会自动重试】
  • 吞吐量【大促等场景,支持短时间内发送大批量邮件】
  • 价格 【多梯度的价格区间提供】

sendgrid

SendGrid 是一家提供云端电子邮件交付服务的公司,它帮助企业和开发者在大规模发送电子邮件,同时保持高送达率和效率。SendGrid 主要服务于需要通过电子邮件与客户通信的公司,例如发送通知邮件、营销邮件和自动化邮件等。

访问官网

功能特性

  • 高可靠性:SendGrid拥有强大的基础设施,能够保证邮件的稳定传输,帮助你的邮件避免被标记为垃圾邮件。

  • 强大的API:SendGrid提供了一套全面且易于使用的API,开发者可以通过API轻松地集成SendGrid的服务。

  • 丰富的功能:除了基本的邮件发送和接收功能,SendGrid还提供了邮件模板、邮件跟踪、分析报告等功能,帮助你更好地管理和优化你的邮件服务。

  • 弹性扩展:无论你的邮件发送量是百、千还是百万级别,SendGrid都可以轻松处理,满足你的业务扩展需求。

  • 优秀的客户支持:SendGrid提供了丰富的文档和教程,同时还有专业的客户支持团队,可以帮助你解决使用过程中遇到的问题。

  • 邮件追踪和分析功能:等支持A/B测试功能和事件webhook通知

套餐介绍

  • free 套餐
    • 支持每天100封邮件发送
    • 提供基础的电子邮件发送功能,适用于小型项目或刚开始使用电子邮件营销的用户。
  • 基础套餐 (Essentials)
    • 价格:起价 $19.95/月
    • 包括更高的发送限额和一些额外的功能,适合需要更高性能邮件服务的中小企业。

发送模式

send

针对单个邮箱进行发送。价格比较便宜,是常规使用的场景。

campaign send

先将联系人添加到segment,然后针对sengment 进行发送。价格相对昂贵,但是大批量发送速度较快。

场景实践

我们邮件发送之前是基于klavio,但是成本比较昂贵和我们需要建立自己的crm系统,采用对接sendgrid来替换klavio 使用

ip 预热

为了保证邮件的声誉,和邮件送达率,我们需要对ip预热。逐步提高每天邮件的发送量。

域名验证

没有经过域名验证的发件人,对收件人来说会有风险提示。

场景选择

flow 用户通知

可以自定义以下场景,例如订阅,给指定的人群发送邮件

campaign 通知

系统计算指定人群,发送邮件通知。

代码实践

import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.JSONBody;
import com.dtflys.forest.annotation.Post;

/**
* 使用dtflys封装client,方便spring boot项目调用
*/
@BaseRequest(interceptor = SendGridInterceptor.class, baseURL = "https://api.sendgrid.com")
public interface SendGridClient {

@Post("/v3/mail/send")
SendGridSendReq send(@JSONBody SendGridSendReq req);


//配置了webhook 才可以收到事件通知,免费账户可以建立一个webhook
@Post("/v3/user/webhooks/event/settings")
Object createWebhook(@JSONBody SendGridWebHookCreateReq req);

}

import com.dtflys.forest.exceptions.ForestRuntimeException;
import com.dtflys.forest.http.ForestRequest;
import com.dtflys.forest.http.ForestResponse;
import com.dtflys.forest.interceptor.Interceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
* 方便统一header,异常处理
*/
@Slf4j
@Component
public class SendGridInterceptor implements Interceptor {

@Value("${sendgrid.key}")
private String sendgridKey;

@Override
public boolean beforeExecute(ForestRequest request) {
request.addHeader("Authorization", "Bearer " + sendgridKey);
return true;
}


@Override
public void onError(ForestRuntimeException ex, ForestRequest request, ForestResponse response) {
log.error("sendgrid 接口调用失败 , path :{} ", request.getUrl(), ex);
}
}

调优

Google Postmaster Tools 是一项服务,旨在帮助发送大量电子邮件的发送者了解和改善他们的邮件投递。以下是一些主要的功能和优势:

邮件投递监测

  • Postmaster Tools API overview:此API允许您收集发送到Gmail用户的大量电子邮件的指标,并将数据导入或与其他系统合并。这些指标包括用户标记为垃圾邮件的电子邮件百分比和投递错误。
  • Set up Postmaster Tools:使用Postmaster Tools可以监控您发送到个人Gmail账户的邮件信息,以及您用于发送邮件的域和IP地址的信息。

提升邮件送达率

域名和IP声誉管理