我正在使用Golang SMPP协议发送短信。消息正在成功发送,但收件人手机上显示的源地址为“未知地址”。
这是我的代码-- main,开始
package main
import (
"log"
"github.com/fiorix/go-smpp/smpp"
"github.com/fiorix/go-smpp/smpp/pdu/pdufield"
"github.com/fiorix/go-smpp/smpp/pdu/pdutext"
)
func main() {
tx := &smpp.Transmitter{
Addr: "server:port",
User: "userId",
Passwd: "password",
}
// Create persistent connection, wait for the first status.
conn := <-tx.Bind()
if conn.Status() != smpp.Connected {
log.Fatal(conn.Error())
}
sm, err := tx.Submit(&smpp.ShortMessage{
Src: "MyCompany",
Dst: "25*********",
Text: pdutext.Raw("Sample sms"),
Register: pdufield.NoDeliveryReceipt,
})
if err != nil {
log.Fatal(err)
}
log.Println("Message ID:", sm.RespID())
}
字符串
-- go.mod
module sms
go 1.21.0
require github.com/fiorix/go-smpp v0.0.0-20210403173735-2894b96e70ba
require golang.org/x/text v0.3.6 // indirect
型
Image我遵循的示例:https://pkg.go.dev/github.com/fiorix/go-smpp/smpp#example-Transmitter
2条答案
按热度按时间fjnneemd1#
根据SMPP规范,源地址(通常称为“发件人ID”)最多可以包含11个字母数字字符。您示例中的字符串“MyCompany”长于允许的长度,这可能是导致问题的原因。
尝试使用较短的字母数字字符串作为源地址:
字符串
deikduxw2#
我已经花了相当多的时间来搜索这个问题的解决方案。我在这个链接https://melroselabs.com/docs/tutorials/sms/send-sms-with-smpp-using-go/上从另一个go-smpp库中找到了解决方案的提示。我只是添加了:SourceAddrTON:5和SourceAddrNPI:0,现在它工作了![在sms src上显示MyCompany]。这里是完整的工作代码。
字符串