Reach

Grow

Manage

Automate

Reach

Grow

Manage

Automate

如何使用SWAKS与SparkPost

2021年6月24日

电子邮件

1 min read

如何使用SWAKS与SparkPost

2021年6月24日

电子邮件

1 min read

如何使用SWAKS与SparkPost

这是一个可以通过 SMTP 发送电子邮件的命令行工具。它不仅易于使用,而且在需要时还提供许多选项。

Business in a box.

探索我们的解决方案。

去年,我们发布了一篇博客文章,展示了如何使用无处不在且非常有用的telnet工具来检查SMTP连接

下一步是通过使用一个非常棒的“下一等级”工具(它称自己为电子邮件的瑞士军刀)来简化手动过程,这个工具叫做SWAKS。这是一款命令行工具,可以通过SMTP发送电子邮件。它不仅易于使用,还能在需要时同时提供无数选项。

起初,我对大量选项感到害怕,但使用最基本的选项完全可行。如果您遇到任何问题,只需收藏此页面,复制并粘贴示例,然后根据需要进行修改。在本博客结尾时,一旦您熟悉并且对SWAKS命令没有太多变异/动态,我将向您展示如何创建一个预设所有默认参数的配置文件。这使得运行SWAKS只需按下一个按钮(好吧,“键”)即可实现! 

在本练习中,我们将从CentOS 7服务器运行命令,但命令在所有支持的平台上都类似。如上所述,如果您被卡住,只需直接复制并粘贴到您的系统中,然后进行必要的修改。以下是基础:

安装

sudo yum install epel-release -y && sudo yum install swaks -y

安装后,这里是发送消息的基本语法。在此示例中,我们使用服务器的本地地址:

swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com

发送带有“Subject”标题的消息+其他标题,然后在正文中包含“Hello World!”文本:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --header "Subject: Hello! This is the subject header\Second_header:123\nThird_Header:XYZ" --body “Hello World!”

以下是添加附件的方法,SWAKS为您进行base64转换,非常适合测试消息大小限制:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz

基本操作您已经掌握得差不多了!现在看看您还能如何提升您的设置能力。这里有一些建议:

  • 使用像chron这样的调度器进行基本的“工作正常”测试,可以作为基础甚至增强您的监控系统。

  • 测量连接邮件服务器时的延迟和关闭连接时的延迟。

  • 测试不同的TLS版本和密码套件

您不会被单独留下,我将告诉您如何完成上述所有操作。这次我们将注入到我们的SparkPost服务器中。

给我们的SparkPost服务器发送一条消息(如何在这里创建API密钥,以及SMTP选项)。一旦您获得了认证密钥,将其粘贴到命令中(确保密钥的安全和保密!):

swaks -server smtp.sparkpostmail.com:587 -tls --auth-user SMTP_Injection --auth-password [your auth key] -f me@from.com -t them@recipient.com

如果您需要有关如何通过SMTP发送到我们的服务器的故障排除指导,请查看这篇文章。对于基本的SMTP连接测试,您还可以使用手动telnet会话验证SMTP连接

为了遵循最佳安全实践,SparkPost已废弃所有旧的TLS版本,除了v1.2及以上版本。如果您想查看您的系统是否兼容,SWAKS允许您测试特定的TLS版本和密码套件。

swaks -s smtp.sparkpostmail.com -tls -p 587 -f me@from.com -t them@recipient.com -tlsp tlsv1_2 --tls-cipher ECDHE-RSA-AES128-GCM-SHA256

在此示例中,我们使用“tlsv1_2”,但请继续将其更改为“tlsv1_1”并在其他域上使用,以观察它们的兼容性。

如果您想计时邮件服务器响应速度有多快?SWAKS可以通过SMTP周期并在某些点脱离而不发送消息,您可以使用“time”命令来计时,它会在输出末尾显示:

$ time swaks -s 127.0.0.1 -f sender@from.com -t them@recipient.com test--quit-after RCPT === Trying 127.0.0.1:25... === Connected to 127.0.0.1. …  -> RCPT TO:<them@recipient.com> <-  250 2.1.5 <them@recipient.com> ok  -> QUIT <-  221 2.0.0 v1pmta5.jasdevism.com says goodbye === Connection closed with remote host. real 0m0.049s user 0m0.038s sys 0m0.009s

如承诺,如果您阅读到这里,奖励是这个简单的配置文件,用于设置默认参数:

$ Cd $HOME $ vim .swaksrc  # 将此复制并粘贴到.swaksrc文件中 --from swakstest@jasdevism.com h-From: "Jas Swaks" <swakstest@jasdevism.com> -s 127.0.0.1  --body "This is a test!" --to jsingh@sparkpost.com

保存后,只需输入“swaks”,它就会预填充所有内容并顺利发送!更好的是,您可以通过在命令行上添加进行覆盖,比如您想要不同的收件人:

swaks -t recipient@somewherelse.com

让我们为您联系Bird专家。
在30分钟内见证Bird的全部威力。

通过提交,您同意 Bird 可能会就我们的产品和服务与您联系。

您可以随时取消订阅。查看Bird的隐私声明以获取有关数据处理的详细信息。

Newsletter

通过每周更新到您的收件箱,随时了解 Bird 的最新动态。

让我们为您联系Bird专家。
在30分钟内见证Bird的全部威力。

通过提交,您同意 Bird 可能会就我们的产品和服务与您联系。

您可以随时取消订阅。查看Bird的隐私声明以获取有关数据处理的详细信息。

Newsletter

通过每周更新到您的收件箱,随时了解 Bird 的最新动态。

让我们为您联系Bird专家。
在30分钟内见证Bird的全部威力。

通过提交,您同意 Bird 可能会就我们的产品和服务与您联系。

您可以随时取消订阅。查看Bird的隐私声明以获取有关数据处理的详细信息。

R

Reach

G

Grow

M

Manage

A

Automate

Newsletter

通过每周更新到您的收件箱,随时了解 Bird 的最新动态。