如前所述,您必须使用提供程序。SMPP 协议需要一个 SMS 网关,并且没有免费的 SMS 网关(据我所知)。但是,一旦您找到了像SmsGlobal这样的 SMS 网关(有很多提供商),您就可以使用Ogham库。发送 SMS 的代码很容易编写(它会自动处理字符编码和消息拆分)。真正的 SMS 使用 SMPP 协议(标准 SMS 协议)或通过提供商发送。您甚至可以使用 SMPP 服务器在本地测试您的代码,以在支付真正的 SMS 发送费用之前检查您的 SMS 的结果。
package fr.sii.ogham.sample.standard.sms;
import java.util.Properties;
import fr.sii.ogham.core.builder.MessagingBuilder;
import fr.sii.ogham.core.exception.MessagingException;
import fr.sii.ogham.core.service.MessagingService;
import fr.sii.ogham.sms.message.Sms;
public class BasicSample {
public static void main(String[] args) throws MessagingException {
// [PREPARATION] Just do it once at startup of your application
// configure properties (could be stored in a properties file or defined
// in System properties)
Properties properties = new Properties();
properties.setProperty("ogham.sms.smpp.host", "<your server host given by the provider>"); // <1>
properties.setProperty("ogham.sms.smpp.port", "<your server port given by the provider>"); // <2>
properties.setProperty("ogham.sms.smpp.system-id", "<your server system ID given by the provider>"); // <3>
properties.setProperty("ogham.sms.smpp.password", "<your server password given by the provider>"); // <4>
properties.setProperty("ogham.sms.from.default-value", "<phone number to display for the sender>"); // <5>
// Instantiate the messaging service using default behavior and
// provided properties
MessagingService service = MessagingBuilder.standard() // <6>
.environment()
.properties(properties) // <7>
.and()
.build(); // <8>
// [/PREPARATION]
// [SEND A SMS]
// send the sms using fluent API
service.send(new Sms() // <9>
.message().string("sms content")
.to("+33752962193"));
// [/SEND A SMS]
}
}
还有许多其他功能和示例/弹簧示例。