{"id":20816405,"url":"https://github.com/nebo15/mouth","last_synced_at":"2025-10-05T00:48:43.164Z","repository":{"id":62429934,"uuid":"95004943","full_name":"Nebo15/mouth","owner":"Nebo15","description":"Simple adapter based SMS sending library","archived":false,"fork":false,"pushed_at":"2020-06-03T18:37:37.000Z","size":99,"stargazers_count":32,"open_issues_count":3,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-18T02:39:47.300Z","etag":null,"topics":["elixir","ip2sms","sms","sqs"],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nebo15.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-21T13:06:30.000Z","updated_at":"2024-12-23T20:49:52.000Z","dependencies_parsed_at":"2022-11-01T20:05:31.145Z","dependency_job_id":null,"html_url":"https://github.com/Nebo15/mouth","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Nebo15/mouth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebo15%2Fmouth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebo15%2Fmouth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebo15%2Fmouth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebo15%2Fmouth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nebo15","download_url":"https://codeload.github.com/Nebo15/mouth/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebo15%2Fmouth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278395917,"owners_count":25979691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","ip2sms","sms","sqs"],"created_at":"2024-11-17T21:33:46.564Z","updated_at":"2025-10-05T00:48:43.138Z","avatar_url":"https://github.com/Nebo15.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mouth [![Build Status](https://travis-ci.org/Nebo15/mouth.svg?branch=master)](https://travis-ci.org/Nebo15/mouth) [![Coverage Status](https://coveralls.io/repos/github/Nebo15/mouth/badge.svg?branch=master)](https://coveralls.io/github/Nebo15/mouth?branch=master)\n![logo](https://68.media.tumblr.com/avatar_21e0adf52036_128.png \"Logo\")\n\nSimple adapter based SMS sending library\n\n## Installation\nThis package can be installed\nby adding `mouth` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [{:mouth, \"~\u003e 0.4.1\"}]\nend\n```\n\n## Adapters\n\n* `Mouth.SMS2IPAdapter` - Simple SMS2IP adapter.\n* `Mouth.TwilioAdapter` - Adapter for sending SMS through Twilio.\n* `Mouth.LocalAdapter` - Delivers messages to an in-memory store. Useful for\n  development when you don't want to send real SMS messages.\n* `Mouth.TestAdapter` - Adapter for test environment.\n\n## Getting Started\n\n```elixir\n# In your config/config.exs file\n#\n# There may be other adapter specific configuration you need to add.\nconfig :my_app, MyApp.Messenger,\n  adapter: Mouth.SMS2IPAdapter,\n  source_number: \"TEST_NUMBER\",\n  gateway_url: \"localhost:4000\",\n  login: \"test\",\n  password: \"password\"\n\n# Somewhere in your application\ndefmodule MyApp.Messenger do\n  use Mouth.Messenger, otp_app: :my_app\nend\n\n# Define your messages\ndefmodule MyApp.Message do\n  import Mouth.Message\n\n  def send_password do\n    new_message(\n      to: \"+380931234567\",\n      body: \"12345\"\n    )\n\n    # or pipe using Mouth.Message functions\n    new_message\n    |\u003e to(\"+380931234567\")\n    |\u003e body(\"12345\")\n  end\nend\n\n# In a controller or some other module\nMessage.send_password |\u003e Messenger.deliver\n```\n\n## Inbox preview in the browser\n\nMouth ships with a Plug that allows you to preview the messages in the local\n(in-memory) mailbox. It's particularly convenient in development when you\nwant to check what your message will look like while testing the various flows\nof your application.\n\nFor email to reach this mailbox you will need to set your `Mailer` adapter to\n`Swoosh.Adapters.Local`:\n\n```elixir\n# in config/dev.exs\nconfig :my_app, MyApp.Messenger,\n  adapter: Mouth.LocalAdapter\n```\n\nThen, use the Mix task to start the inbox preview server:\n\n```console\n$ mix mouth.inbox.server\n```\n\nOr in your Phoenix project you can `forward` directly to the plug, like this:\n\n```elixir\n# in web/router.ex\nif Mix.env == :dev do\n  scope \"/dev\" do\n    pipe_through [:browser]\n\n    forward \"/inbox\", Plug.Mouth.InboxPreview, [base_path: \"/dev/inbox\"]\n  end\nend\n```\n\nIf you are curious, this is how it looks:\n\n![Plug.Mouth.InboxPreview](images/inbox-preview.png)\n\n## Contributing\n\nBefore opening a pull request, please open an issue first.\n\nOnce we've decided how to move forward with a pull request:\n\n    $ git clone https://github.com/nebo15/mouth.git\n    $ cd mouth\n    $ mix deps.get\n    $ mix test\n\nOnce you've made your additions and `mix test` passes, go ahead and open a PR!\n\n## Thanks!\nThanks to cool guys from [Bamboo](https://github.com/thoughtbot/bamboo) for inspiration,\nand [Swoosh](https://github.com/swoosh/swoosh) for the `LocalAdapter`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnebo15%2Fmouth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnebo15%2Fmouth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnebo15%2Fmouth/lists"}