Bash

通過 KANNEL 發送特殊字元和換行符

  • September 25, 2016

如何使用行和特殊字元向kannel發送消息。例如,如果我有包含以下文本的文件 message.txt

line1 with few special characters like @ " / :
line 2 spaces words etc
line 3 "special characters like @ " / :
line 4 end

如何使用 CURL 通過 bash 將其傳遞給 KANNEL ?比如 curl root@radius:/temp# cat test

#!/bin/bash
MSG=`cat /temp/message.txt`
curl "http://127.0.0.1:13013/cgi-bin/sendsms?username=kannel&password=kannelpassword&to=03333333333&text=$MSG"

但它說"curl: (3) Illegal characters found in URL"

我本可以使用GAMMU,但它沒有檢測到我的 (teltonika g/10 com 串列調製解調器,而在 kannel 上調製解調器工作正常。

關於如何通過使用串列調製解調器發送簡訊以及上面顯示的文本,還有其他建議嗎?

嘗試--data-urlencode使用-G.

curl "http://127.0.0.1:13013/cgi-bin/sendsms?username=kannel&password=kannelpassword&to=03333333333" -G --data-urlencode text@/temp/message.txt

您可以從標準輸入提供數據:

ls -l | curl "http://127.0.0.1:13013/..." -G --data-urlencode text@-

或者直接在命令行中指定:

curl "http://127.0.0.1:13013/..." -G --data-urlencode text='!@#$%^&*()'

引用自:https://unix.stackexchange.com/questions/219112