如何使用gammu/wammu在短信中添加换行符


How to add new line character in sms using gammu/wammu

我已经在PHP中制作了一个自定义脚本,并且正在使用gammu/wammu发送短信,但是我无法弄清楚如何在SMS中添加新行字符。

我试过了

  • 'n
  • 'r
  • 't
  • 0x0a
  • 0x0d
  • &10;

但这些都没有奏效。

你试过'r'n吗?在我看来,SMS 需要回车和换行。我看过的另一个地方说使用 %0a%0d ,这可能有效,但这似乎是他们的服务而不是一切。不过我会试一试。无论哪种方式,您都需要确保将0x0A0x0D(十六进制中的两个字符(传递给发送 SMS 的服务。

请参阅此处以获取我提到的站点 %0a%0d ,它还有一个 SMS 字符集的图表。

我也无法让它在 gammu-smsd 中工作,我真的需要能够在短信中发送真正的换行字节码。 我已经用谷歌搜索了好几天,搜索了 gammu 代码库。我无法判断它是否/在哪里被困住,但无论我如何进入我的 sqlite3 gammu-smsd,它都不是另一端出现的换行符(machine2machine sms(。

不需要 CR/LF,我只需要在变量字符串模板之后发送一个带有 ' 的模板,在基于 SMS 的跟踪器中使用它

更新,我想出一种方法让它发送我想要的东西。 由于我使用的是带有gammu的sqlite3数据库,因此这个小PHP程序使我将消息发送到移动资产,并在那里被接受:

$sms_template=<<<EOD
insert into outbox ( TextDecoded , DestinationNumber, DeliveryReport, CreatorID) values ('%s','%s','yes','auto');
EOD;
$number=1243456;
$terminator=sprintf("%s",chr(10));
$db = new SQLite3("/var/spool/gammu/smsd.sqlite");
$sms='SRV=12171%s';
$sql=sprintf($sms_template, sprintf($sms, $terminator), $number);
$db->exec($sql);

这实际上将短信很好地存储在发件箱中,并且真正的换行符到达目的地。 真的希望这对某人有所帮助。 这段代码是从私人内容中剥离的,可能无法完全按照显示的方式工作,但我使用了一个类似的脚本。

格伦

尽管这个问题很久以前就被问过了,但我想我可以添加它作为参考。

通过我的测试,我发现这取决于您使用的引号。使用 "(双引号(而不是单引号,以便正确设置消息格式并使用 ' 或 ''r。

希望这有帮助。

干杯:)

也许很晚才得到答案,但作为对我完全有用的参考:

echo -e "Hello'nWorld" | gammu ....