{"id":21103095,"url":"https://github.com/robotnikautomation/robotnik_email","last_synced_at":"2025-09-01T07:37:24.157Z","repository":{"id":141531608,"uuid":"373914849","full_name":"RobotnikAutomation/robotnik_email","owner":"RobotnikAutomation","description":"Email server to send emails through ROS","archived":false,"fork":false,"pushed_at":"2025-06-10T15:07:44.000Z","size":85,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":5,"default_branch":"ros-devel","last_synced_at":"2025-06-10T16:34:52.891Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobotnikAutomation.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-04T17:26:10.000Z","updated_at":"2025-06-10T14:24:27.000Z","dependencies_parsed_at":"2023-10-04T15:17:47.715Z","dependency_job_id":"e3212a45-5c3a-4149-a649-2b12b22d811b","html_url":"https://github.com/RobotnikAutomation/robotnik_email","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/RobotnikAutomation/robotnik_email","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_email","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_email/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_email/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_email/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobotnikAutomation","download_url":"https://codeload.github.com/RobotnikAutomation/robotnik_email/tar.gz/refs/heads/ros-devel","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frobotnik_email/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273089132,"owners_count":25043661,"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-09-01T02:00:09.058Z","response_time":120,"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":[],"created_at":"2024-11-19T23:57:40.703Z","updated_at":"2025-09-01T07:37:24.126Z","avatar_url":"https://github.com/RobotnikAutomation.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# robotnik_email\n\nThe robotnik_email package, email server to send messages through ROS\n\n## Installation\n\nThis package depens on the following packages:\n\n- robotnik_msgs[🔗](https://github.com/RobotnikAutomation/robotnik_msgs)\n\n```\ngit clone https://github.com/RobotnikAutomation/robotnik_msgs\n```\n\n- rcomponent[🔗](https://github.com/RobotnikAutomation/rcomponent)\n\n```\ngit clone https://github.com/RobotnikAutomation/rcomponent\n```\n\nInstall the package:\n\n```\ngit clone https://github.com/RobotnikAutomation/robotnik_email.git\n```\n\nInstall other ros dependencies:\n\n```\nrosdep install --from-path src --ignore-src -y -r\n```\n\nBuild the package\n```\ncatkin build\nsource devel/setup.bash\n```\n\n\n## SMTP Configuration\n\nIn order to use this package a SMTP server is required. There are two modes of use:\n\n- Working with a SMTP provided by a third party. For example, a customer or a company.\n\n- Working with your own SMTP, for testing purposes only.\n\n### a) SMTP Third Party\n\nThe customer has to give us acces to work with his SMTP. You have ask for ```user```, ```password```, ```from email```, ```SMTP server``` and ```port```. In this example credentials are not needed:\n\n```\nUser: ---\nPassword: --- \nFrom email:  name@company.com\nSMTP server: 10.100.100.10\nPort: 25\n```\n\n### b) SMTP on your own\n\nThis is the recommended way to familiarize yourself with this package.\n\nUse a google account without double verification and watch this video to configure your own SMTP: https://www.youtube.com/watch?v=ql5Dex4m40w\n\nAt the end of the video you will be able to fill all the fields. This is an example:\n\n```\nUser: username@gmail.com\nPassword: yourpassword \nFrom email:  username@gmail.com\nSMTP server: smtp.gmail.com\nPort: 587\n```\n\nAdditionally, you can test if your SMTP server is working properly by sending an email through the following link. Select ```Tls``` as securty field: https://www.gmass.co/smtp-test\n\n\n## Package configuration\n\nThis package needs the SMTP server information to send emails. So that, edit the following file:\n\n```\nconfig/smtp_config.yaml\n```\n\nFill the fields with your SMTP configuration like in this example:\n\n```\nsmtp:\n  server: 'smtp.gmail.com'\n  port: 587\n  use_authentication: true\n  username: 'username@gmail.com'\n  password: 'yourpassword'\n  sender: 'username@gmail.com'\n  default_recipients:\n    - 'recipient1@domain.com'\n    - 'recipient2@domain.com'\n```\n\nThe following table describes each parameter:\n\n| Name  | Type  | Default  | Description | \n|---|---|---|---|\n| server  | string  | smtp.gmail.com  | Server address  |\n| port  | int  | 587  | Server port  |\n| use_authentication  | bool  | False  | Some SMTP servers needs credentials  |\n| username  | string  | username  | Name credentials   |\n| password  | string  | password  | Password credentials  |\n| sender  | string  | sender@domain.com    | Email from where the message is sent  |\n| default_recipients  | string[]  | recipient@domain.com  |  If the recipients field is empty, gets these recipients  |\n| time_between_emails | int | 0 | Time between one email and another to avoid overloads (not implemented yet) |\n\n\n## Bringup\n\nLaunch the package:\n\n```\nroslaunch robotnik_email email.launch\n```\n\nSend a email to the default recipieints:\n```\nrosservice call /robotnik_email/send_email \"recipients: []\nstatus: {id: 0, description: '', type: '', message: ''}\nuuid: ''\ndatetime: ''\nfiles_to_upload: []\"\n```\n\nSend a email to specific recipieints:\n```\nrosservice call /robotnik_email/send_email \"recipients: ['recipient1@gmail.com', 'recipient2@gmail.com0']\nstatus: {id: 0, description: '', type: '', message: ''}\nuuid: ''\ndatetime: ''\nfiles_to_upload: []\"\n```\n\nSend a email to specific recipieints including some file attachments:\n```\nrosservice call /robotnik_email/send_email \"recipients: ['recipient1@gmail.com', 'recipient2@gmail.com0']\nstatus: {id: 0, description: '', type: '', message: ''}\nuuid: ''\ndatetime: ''\nfiles_to_upload: ['image1.png', 'video1.mkv']\"\n```\n\n\n\n\n## 1. smtp_manager\n\nIt sends emails using a SMTP server\n\n### 1.1 Parameters\n\n * **server** (string, default: smtp.gmail.com):\n\n   SMTP server address\n\n * **port** (int, default: 587):\n   \n   SMTP server port  \n\n * **sender** (string, default: ):\n   \n   Email from where the message is sent\n\n * **use_authentication** (bool, default: False):\n   \n   Enable credentials when a SMTP needs them \n\n * **ssl** (bool, default: False):\n   \n   Enable SSL connection\n\n * **tls** (bool, default: False):\n   \n   Enable TLS connection\n\n * **timeout** (int, default: 10):\n   \n   Timeout to connect to the SMTP server\n\n * **tls** (bool, default: False):\n   \n   Enable TLS connection\n\n * **username** (string, default: username):\n   \n   Name credentials\n\n * **password** (string, default: password):\n   \n   Password credentials\n\n * **default_recipients** (string[], default: []):\n   \n   Default recipiens if the recipients field is empty when a message is sent.\n\n * **time_between_emails** (float, default: 5):\n   \n   Time (in seconds) between one email and another to avoid overloads\n\n * **include_detailed_info** (bool, default: True.):\n    \n    Include detailed information in the email. The detailed information is taken from the rosservice send_email\n\n * **auto_generate_uuid_datetime** (bool, default: True):\n    \n    Automatically generate the uuid and datetime fields in the email in case it is not provided by the user\n \n * **queue_max_len** (int, default: 1000):\n    \n    Max length of queue where the messages are stored until they are sent\n        \n\n### 1.2 Published Topics\n\n* ~/state (robotnik_msgs/State):\n  Node health\n\n* ~/queue_size (std_msgs/UInt32)\n  Size of the queued messages to be sent\n\n### 1.3 Services\n* ~/send_email (robotnik_alarms_msgs/SendAlarms)\nThe service queues the email to be sent to the recipients with the status message and the files to upload.  \nExample:\n  ```\n    rosservice call /smtp_manager/send_email \"recipients: ['info@robotnik.es']\n    status: {id: 0, description: 'Temperature Alarm', type: '', message: 'The alarm temperature has been reached'}\n    uuid: ''\n    datetime: ''\n    files_to_upload: ['/home/robot/Pictures/camera-1.png', '/home/robot/Pictures/camera-2.png']\" \n  ```\n  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Frobotnik_email","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotnikautomation%2Frobotnik_email","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Frobotnik_email/lists"}