python で sms 発信 — vonage API を使う

uqモバイルにしてスマホのメアドが消失してしまい、スマホからメールが送れません。

コンピュータで yahoo メールなり gmail なりを導入して、コンピュータ同士でメールをやり取りすればいいのですが、できればこれまでのようにコンピュータからスマホにメールを送りたい。

python を使えばできるのではないかと考え探してみると、vonage API という便利なものがありました。

nexmo のアカウント作成

まずは nexmo のアカウントを作成する必要があります。
ここから、登録フォームに必要事項を記入して登録します。

どういうわけか、yahoo メールで登録しようとすると「メールアドレスがブロックされています」というエラーメッセージで登録できません。
でも、gmail のアドレスであれば簡単に登録できました。

vonage のインストール


pip install vonage

python

以下のような python プログラムを eclipse などで作成して実行し、テストメッセージがきちんと届くことを確認します。


import vonage

client = vonage.Client(key="api-key", secret="api-secret")
sms = vonage.Sms(client)

responseData = sms.send_message(
    {
        "from": "Vonage APIs",
        "to": "電話番号",
        "text": "A text message sent using the Nexmo SMS API",
    }
)

if responseData["messages"][0]["status"] == "0":
    print("Message sent successfully.")
else:
    print(f"Message failed with error: {responseData['messages'][0]['error-text']}")

api-key と api-secret は vonage ダッシュボードの「API settings」に記載されています。

使用料金

1メール当たりに 0.07 ユーロかかるので、1 ユーロ = 130 円とすると、9.1 円/ 1 メールです。
でも最初は、2 ユーロがお試しでフリーで使えます。