Python Forum
send email after restart raspberry pi - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: General (https://python-forum.io/forum-1.html)
+--- Forum: News and Discussions (https://python-forum.io/forum-31.html)
+--- Thread: send email after restart raspberry pi (/thread-18886.html)



send email after restart raspberry pi - chano - Jun-05-2019

How raspberry send email when it restarting, I want receive email when raspberry is restarting, for example, when electricity drops.

Is it a possible?


RE: send email after restart raspberry pi - DeaD_EyE - Jun-05-2019

Of course it is.
https://realpython.com/python-send-email/

You can use the email and smtplib. A better API is provided by emails.
To start your script after booting, you can use:
  • a stupid init-script
  • /etc/rc.local
  • systemd
  • cron, google for @reboot cron



RE: send email after restart raspberry pi - chano - Jun-06-2019

(Jun-05-2019, 10:15 AM)DeaD_EyE Wrote: Of course it is.
https://realpython.com/python-send-email/

You can use the email and smtplib. A better API is provided by emails.
To start your script after booting, you can use:
  • a stupid init-script
  • /etc/rc.local
  • systemd
  • cron, google for @reboot cron

Thank for your answer,but i am very beginner,can you write semple code and tell me what i do to start after restart raspberry?
Thank you very much


RE: send email after restart raspberry pi - DeaD_EyE - Jun-06-2019

I prefer the emails package. To use it, you have to install it on your Raspberry Pi.
Also you have to check the settings. Some providers do have different ports.

You can install the package as root:
pip3 install emails
or as unprivileged user:
pip3 install emails --user
or you can use a virtual environment as normal unprivileged user:
python3 -m venv python_env
source python_env/bin/activate
pip install emails
Later you have to use the symlinked binary python in the virtual environment.
YourHomePath/python_env/bin/python YourScript.py
Then you can try this code, after you have filled in all credentials, host, port, etc.
Try this, if this works.
Then the next step is to check, if @reboot works with cron.

import emails
import datetime

now_str = datetime.datetime.now().isoformat()

# you can also use only text
html_message = '''
    <h1>Restart at:</h1>
    <p>{}</p>
    '''.format(now_str)
text_message = 'Restart at:\n' + now_str 
subject = 'Restart'
mail_from = ('My Raspberry Pi', '[email protected]')
to = ['[email protected]']
smtp = {
    'host': 'securesmtp.t-online.de',
    'port': 587,
    'tls': True,
    'timeout': 5,
    'user': '[email protected]',
    'password': 'MySuperSecretPassword',
    }

message = emails.html(
    html=html_message, text=text_message,
    subject=subject, mail_from=mail_from
    )

result = message.send(to=to, smtp=smtp)
print(result.status_code, result.status_text)



RE: send email after restart raspberry pi - chano - Jun-06-2019

(Jun-06-2019, 01:12 PM)DeaD_EyE Wrote: I prefer the emails package. To use it, you have to install it on your Raspberry Pi.
Also you have to check the settings. Some providers do have different ports.

You can install the package as root:
pip3 install emails
or as unprivileged user:
pip3 install emails --user
or you can use a virtual environment as normal unprivileged user:
python3 -m venv python_env
source python_env/bin/activate
pip install emails
Later you have to use the symlinked binary python in the virtual environment.
YourHomePath/python_env/bin/python YourScript.py
Then you can try this code, after you have filled in all credentials, host, port, etc.
Try this, if this works.
Then the next step is to check, if @reboot works with cron.

import emails
import datetime

now_str = datetime.datetime.now().isoformat()

# you can also use only text
html_message = '''
    <h1>Restart at:</h1>
    <p>{}</p>
    '''.format(now_str)
text_message = 'Restart at:\n' + now_str 
subject = 'Restart'
mail_from = ('My Raspberry Pi', '[email protected]')
to = ['[email protected]']
smtp = {
    'host': 'securesmtp.t-online.de',
    'port': 587,
    'tls': True,
    'timeout': 5,
    'user': '[email protected]',
    'password': 'MySuperSecretPassword',
    }

message = emails.html(
    html=html_message, text=text_message,
    subject=subject, mail_from=mail_from
    )

result = message.send(to=to, smtp=smtp)
print(result.status_code, result.status_text)
i cant to install emails,it give me errors,i have smtplib if can with this.Thank you


RE: send email after restart raspberry pi - snippsat - Jun-06-2019

(Jun-06-2019, 02:04 PM)chano Wrote: i cant to install emails
What's the error?
Example working:
λ pip install emails
Collecting emails
Downloading 0.5.15-py2.py3-none-any.whl (57kB)
     |████████████████████████████████| 61kB 245kB/s
............
Installing collected packages: cssutils, cachetools, premailer, emails
Successfully installed cachetools-3.1.1 cssutils-1.0.2 emails-0.5.15 premailer-3.4.1
chano Wrote:i have smtplib if can with this
But do you have a SMTP service provider?
If have then the simplest way.
# my_email.py
import smtplib

def send_mail():
    server = smtplib.SMTP()
    server.connect('smtp.host.adress')
    server.sendmail('[email protected]', '[email protected]',
    'Subject: Camera down')
    print("Mail sent successfully")
    server.quit()

send_mail()
chano Wrote:How raspberry send email when it restarting, I want receive email when raspberry is restarting,
Usage of Cron,run script on reboot.
sudo crontab -e
Add:
@reboot python /home/pi/MyProgram/my_email.py &
Restart sudo reboot


RE: send email after restart raspberry pi - chano - Jun-12-2019

Hello,thank you all is ok.you are very good men.