def send_sms(recipients, body, from_phone="ZConnect"): """ Send an sms message to a set of users Args: recipients (list of zconnect.modesl.User): A list of users who should recieve this message body (str): The message content. Should be short! from_phone (str, optional): Either a phone number or up-to 11 Alphanumeric chars. Returns: None: This function fails silently Raises: django.core.exceptions.ImproperlyConfigured - when an SMS backend is not properly configured. """ numbers = [format_number(recipient.phone_number, PhoneNumberFormat.INTERNATIONAL) \ for recipient in recipients if recipient.phone_number] logger.debug("Sending SMS to: %s", numbers) sms = SmsMessage( to=numbers, body=body, from_phone=from_phone, ) sms.send()
def test_send_message(self): from sendsms.message import SmsMessage with self.settings( SENDSMS_BACKEND='sendsms.backends.yuntongxun.SmsBackend'): body = {'template_id': '185733', 'datas': ['潘运来', '20', '迪康基因']} obj = SmsMessage(body=body, from_phone='', to=['17798553635']) obj.send()
def create_otp_for_number(cls, number): # The max otps generated for a number in a day are only 10. # Any more than 10 attempts returns False for the day. today_min = datetime.datetime.combine(datetime.date.today(), datetime.time.min) today_max = datetime.datetime.combine(datetime.date.today(), datetime.time.max) otps = cls.objects.filter(phone_number=number, timestamp__range=(today_min, today_max)) if otps.count() <= getattr(settings, 'PHONE_LOGIN_ATTEMPTS', 10): otp = cls.generate_otp( length=getattr(settings, 'PHONE_LOGIN_OTP_LENGTH', 6)) phone_token = PhoneToken(phone_number=number, otp=otp) phone_token.save() from_phone = getattr(settings, 'SENDSMS_FROM_NUMBER') message = SmsMessage(body=render_to_string( "otp_sms.txt", { "otp": otp, "id": phone_token.reference_id, "sitename": getattr(settings, 'PHONE_LOGIN_SITENAME', "MyProjectName") }), from_phone=from_phone, to=[number]) message.send() return phone_token else: return False
def sendsms(request): from sendsms.message import SmsMessage message = SmsMessage(body='lolcats make me hungry', from_phone='+919713872684', to=['+918792414595']) message.send() return HttpResponseRedirect('/gifts')
def test_send_simple_sms(self): from sendsms.message import SmsMessage obj = SmsMessage(body="test", from_phone="111111111", to=["222222222"]) obj.send() self.assertEqual(len(sendsms.outbox), 1)
def test_should_queue_sms(self, send_messages_mock): from sendsms.message import SmsMessage with self.settings(SENDSMS_BACKEND='sendsms.backends.rq.SmsBackend'): message = SmsMessage(body='Hello!', from_phone='29290', to=['+639123456789']) message.send() send_messages_mock.delay.assert_called_with([message])
def test_should_queue_sms(self, send_messages_mock): from sendsms.message import SmsMessage with self.settings( SENDSMS_BACKEND="sendsms.backends.celery.SmsBackend"): message = SmsMessage(body="Hello!", from_phone="29290", to=["+639123456789"]) message.send() send_messages_mock.delay.assert_called_with([message])
def send_email(mail): context = {'mail': mail} template = get_template('correo.html') content = template.render() email = EmailMultiAlternatives('Un correo de prueba', 'codigofacilito', settings.EMAIL_HOST_USER, [mail]) email.attach_alternative(content, 'text/html') email.send() #api.send_sms(body='I can haz txt', from_phone='+57 3183679592', to=['+57 3183679592']) message = SmsMessage(body='I can haz txt', from_phone='573183443996', to=['573183679592']) message.send()
def test_should_call_proper_url(self, _call_url_mock): from sendsms.message import SmsMessage with self.settings( SENDSMS_BACKEND="sendsms.backends.ovhsms.OvhSmsBackend", OVH_API_URL="http://fakeurl/", OVH_API_ACCOUNT="myaccount", OVH_API_LOGIN="******", OVH_API_PASSWORD="******", OVH_API_FROM="mysender", OVH_API_NO_STOP=False, ): message = SmsMessage( body="Hello!", from_phone="29290", # overrides OVH_API_FROM to=["+639123456789"], ) res = message.send() self.assertEqual(res, [{"result": "42"}]) expected = ( "http://fakeurl/?account=myaccount&class=1&contentType=text%2Fjson&from=29290&login=mylogin&" "message=Hello%21&noStop=0&password=mypwd&smsCoding=2&to=%2B639123456789", ) self.assertEqual(_call_url_mock.call_args, (expected, )) with self.settings( SENDSMS_BACKEND="sendsms.backends.ovhsms.OvhSmsBackend", OVH_API_ACCOUNT="myaccount", OVH_API_LOGIN="******", OVH_API_PASSWORD="******", OVH_API_FROM="mysender", ): message = SmsMessage( body="Wêlcome à vous\nHenrï & Jack!\r\n", from_phone="thierry", # overrides OVH_API_FROM to=["0699"], ) res = message.send() self.assertEqual(res, [{"result": "42"}]) expected = ( "https://www.ovh.com/cgi-bin/sms/http2sms.cgi?account=myaccount&class=1&contentType=text%2Fjson&" "from=thierry&login=mylogin&message=W%C3%AAlcome+%C3%A0+vous%0DHenr%C3%AF+%26+Jack%21%0D&" "noStop=1&password=mypwd&smsCoding=2&to=0699", ) self.assertEqual(_call_url_mock.call_args, (expected, ))
def test_send_esendex_sandbox(self): from sendsms.message import SmsMessage from sendsms.api import get_connection connection = get_connection('sendsms.backends.esendex.SmsBackend') obj = SmsMessage(body="test", from_phone='111111111', to=['222222222'], connection=connection) res = obj.send() self.assertEqual(res, 1)
def index(request): send_mail( 'Test Pentest send Mail', 'Bonjour a tous juste un test ', 'patrick.dagouagauvci.edu.ci', ['patrick.dagouagagmail.com'], fail_silently=False, ) print( "~~~~~~~~~~~~~~~~~~~~~~~~~~~MESSAGES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n" ) message = SmsMessage(body='Bonjour a tous ', from_phone='+41791111111', to=['+79962642']) message.send() return render(request, 'pages/index.html')
def create_otp_for_number(cls, number): # The max otps generated for a number in a day are only 10. # Any more than 10 attempts returns False for the day. today_min = datetime.datetime.combine(datetime.date.today(), datetime.time.min) today_max = datetime.datetime.combine(datetime.date.today(), datetime.time.max) otps = cls.objects.filter(phone_number=number, timestamp__range=(today_min, today_max)) if otps.count() <= 10: otp = cls.generate_otp(length=getattr(settings, 'PHONE_LOGIN_OTP_LENGTH', 6)) phone_token = PhoneToken(phone_number=number, otp=otp) phone_token.save() message = SmsMessage( body=render_to_string("otp_sms.txt", {"otp":otp, "id":phone_token.id}), to=[number] ) message.send() return phone_token else: return False
def index(request): # all_album = Album.objects.all() # template = loader.get_template('music/index.html') # context = { # 'all_album':all_album # } message = SmsMessage(body='lolcats make me hungry', from_phone='+918146417711', to=['+919780088660']) s = message.send() return HttpResponse("jfsdngkdfkgb;dgth");
def create_otp_for_number(cls, number): # The max otps generated for a number in a day are only 10. # Any more than 10 attempts returns False for the day. today_min = datetime.datetime.combine(datetime.date.today(), datetime.time.min) today_max = datetime.datetime.combine(datetime.date.today(), datetime.time.max) otps = cls.objects.filter(phone_number=number, timestamp__range=(today_min, today_max)) if otps.count() <= getattr(settings, 'PHONE_LOGIN_ATTEMPTS', 10): otp = cls.generate_otp(length=getattr(settings, 'PHONE_LOGIN_OTP_LENGTH', 6)) phone_token = PhoneToken(phone_number=number, otp=otp) phone_token.save() message = SmsMessage( body=render_to_string( "auth/otp_sms.txt", {"otp": otp, "id": phone_token.id} ), to=[number] ) message.send() return phone_token else: return False
def index(request): # all_album = Album.objects.all() # template = loader.get_template('music/index.html') # context = { # 'all_album':all_album # } message = SmsMessage(body='lolcats make me hungry', from_phone='+918146417711', to=['+919780088660']) s = message.send() return HttpResponse("jfsdngkdfkgb;dgth")
def order(request): multiple_form = MultiplePizzaForm() if request.method == 'POST': created_pizza_pk = None filled_form = PizzaForm(request.POST) if filled_form.is_valid(): created_pizza = filled_form.save() created_pizza_pk = created_pizza.id note = 'Thanks for ordering! Your %s %s and %s pizza is on its way!' % ( filled_form.cleaned_data['size'], filled_form.cleaned_data['Main_Course'], filled_form.cleaned_data['Side_Dish'], ) filled_form = PizzaForm() SENDSMS_BACKEND = 'myapp.mysmsbackend.SmsBackend' api.send_sms(body='I can text', from_phone='+12263406180', to=['+12263406180']) message = SmsMessage(body='lolcats make me hungry', from_phone='+12263406180', to=['+12263406180']) message.send() else: note = 'Order was not created, please try again' new_form = PizzaForm() return render( request, 'pizza/order.html', { 'multiple_form': multiple_form, 'pizzaform': filled_form, 'note': note, 'created_pizza_pk': created_pizza_pk }) else: form = PizzaForm() return render(request, 'pizza/order.html', { 'multiple_form': multiple_form, 'pizzaform': form })
def test_send_message(self): from sendsms.message import SmsMessage import json with self.settings( SENDSMS_BACKEND='sendsms.backends.aliyun.SmsBackend', ALIYUN_ACCESS_ID='LTAI4Fs5mnQwbw1seSDFFSTc', ALIYUN_ACCESS_SECRET='0pSY02mWdcZqYZCuBHQQJy90AxEhFV', ALIYUN_REGION=''): body = { 'template_id': 'SMS_58960014', 'datas': { "code": "1234", "product": "测试产品" }, 'sign_name': '身份验证a' } obj = SmsMessage(body=body, from_phone='', to=['17368588130']) res = obj.send() json_res = json.loads(res) print(json_res) self.assertEqual(json_res['Message'], 'OK')
def test_send_simple_sms(self): from sendsms.message import SmsMessage obj = SmsMessage(body="test", from_phone='111111111', to=['222222222']) obj.send() self.assertEqual(len(sendsms.outbox), 1)
def sendsms(request): from sendsms.message import SmsMessage message = SmsMessage(body="lolcats make me hungry", from_phone="+919713872684", to=["+918792414595"]) message.send() return HttpResponseRedirect("/gifts")