前述のように、プロバイダーを使用する必要があります。SMPP プロトコルには SMS ゲートウェイが必要ですが、無料の SMS ゲートウェイはありません (私が知っているとおり)。ただし、SmsGlobalのような SMS ゲートウェイ(多くのプロバイダーがあります)を見つけたら、たとえばOghamライブラリを使用できます。SMS を送信するコードは簡単に記述できます (文字エンコードとメッセージ分割を自動的に処理します)。実際の SMS は、SMPP プロトコル (標準の SMS プロトコル) を使用するか、プロバイダーを介して送信されます。実際の SMS 送信に料金を支払う前に、SMPP サーバーを使用してコードをローカルでテストし、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]
}
}
他にもたくさんの機能やサンプル・スプリングサンプルがあります。