From c0c6f5da7d852926b2a70a0fa717f017a9ef7a27 Mon Sep 17 00:00:00 2001 From: Anuj Dubey <70852663+anujdube12@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:44:47 +0530 Subject: [PATCH] Create email.py send email for user --- src/jarvis/jarvis/skills/collection/email.py | 75 ++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/jarvis/jarvis/skills/collection/email.py diff --git a/src/jarvis/jarvis/skills/collection/email.py b/src/jarvis/jarvis/skills/collection/email.py new file mode 100644 index 00000000..fd5375a0 --- /dev/null +++ b/src/jarvis/jarvis/skills/collection/email.py @@ -0,0 +1,75 @@ +# MIT License + +# Copyright (c) 2019 Georgios Papachristou + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import pyttsx3 +import speech_recognition as sr +import smtplib + +def speak(audio): + engine.say(audio) + # Without this command, speech will not be audible to us. + engine.runAndWait() + + +def sendEmail(to, content): + server = smtplib.SMTP('smtp.gmail.com', 587) + server.ehlo() + server.starttls() + server.login('email address', 'password') + server.sendmail('receiver email', to, content) + server.close() + +def takeCommand(): + # It takes microphone input from the user and returns string output + + r = sr.Recognizer() + with sr.Microphone() as source: + print("Listening...") + r.pause_threshold = 1 + audio = r.listen(source) + try: + print("Recognizing...") + # Using google for voice recognition. + query = r.recognize_google(audio, language='en-in') + print(f"User said: {query}\n") # User query will be printed. + + except Exception as e: + # print(e) + # Say that again will be printed in case of improper voice + print("Say that again please...") + return "None" # None string will be returned + return query + +def email(): + speak("Sir, give me your message") + print('Give message.......') + content = takeCommand() + to = "receiver email" + sendEmail(to, content) + print('Sending mail........') + speak("Email has been sent!") + except Exception as e: + print(e) + speak("Sorry master . I am not able to send this email") + +if __name__ == "__main__": + email()