A django module to send short messages via the Anexia SMS gateway (ASGW). It requires an active Anexia Engine subscription and a "ready to use" configured "sender" within your web service.
Install using pip:
pip install git+https://github.com/anexia-it/django-anexia-sms-gateway@main
In the project's settings.py add the access token configuration:
# Anexia SMS Gateway settings (ASGW)
ASGW_ACTIVE = True
ASGW_API_TOKEN = "your-asgw-api-token"
Call the send_sms
method wherever you want to trigger a short message:
send_sms(message="SMS content", destination="+43123456789")
If you provide a translatable message string be sure to use ugettext
("gettext_lazy" would not be triggered on time):
from django.utils.translation import ugettext
send_sms(message=ugettext("Translatable SMS content"), destination="+43123456789")
The recipient's phone number (=destination
) must consist of prefix +
followed by 1 to 14 digits. Otherwise the ASGW API will return an error.
In case you store the phone number on a model (e.g. User
), we recommend direct validation via RegexValidator
, e.g.:
from django.core.validators import RegexValidator
from django.db.models import CharField
from django.utils.translation import gettext_lazy as _
phone = CharField(
_("phone number"),
max_length=15,
blank=True,
help_text=_("Prefix '+' followed by 1-14 digits, e.g. '+436641234'"),
validators=[
RegexValidator(
r"^\+\d{1,14}$",
_("Phone number must be entered in the format: '+123456789'. Prefix '+' with 1 to 14 digits allowed."),
)
],
)