GetDailyStock/GetDaily.py

69 lines
2.0 KiB
Python

#Get stock symbols in a file
#Get daily quote at end of day
#Send email, see Jupyter thing on other laptop for sending email
import yfinance as yf
import smtplib, ssl, sys, os, configparser
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from smtplib import SMTP
config = configparser.ConfigParser()
config.read("/home/sebadmin/scripts/Stocks/testenv.txt")
emailp = config.get("config","test")
#Yfinance tests
#https://pypi.org/project/yfinance/
data2 = yf.download("CRSR VTI VOO DIS UI TSLA TTWO GME INTC", period="1d")
#print(data2.tail(1))
#data2.head()
Dayclose = data2["Close"].round(decimals=2)
Dayopen = data2["Open"].round(decimals=2)
recipients = ["sebastien.trudel@pirolian.com"]
emaillist = [elem.strip().split(',') for elem in recipients]
msg = MIMEMultipart()
msg["Subject"] = "Daily Stock report"
msg["From"] = "trudel.sebastien@gmail.com"
html = """\
<html>
<head>Close</head>
<body>
{0}
</body>
</html>
""".format(Dayclose.to_html())
html2 = """\
<html>
<head>Open</head>
<body>
{0}
</body>
</html>
""".format(Dayopen.to_html())
part1 = MIMEText(html, "html")
part2 = MIMEText(html2, "html")
msg.attach(part1)
context = ssl.create_default_context()
Email_Port = 465 # If you are not using a gmail account, you will need to look up the port for your specific email host
with smtplib.SMTP_SSL("smtp.gmail.com", Email_Port, context=context) as server:
server.login("trudel.sebastien@gmail.com", emailp) # This statement is of the form: server.login(<Your email>, "Your email password")
# server.sendmail("strudel@pirolian.com", "sebastien.trudel@pirolian.com", Body_of_Email) # This statement is of the form: server.sendmail(<Your email>, <Email receiving message>, Body_of_Email)
server.sendmail(msg["From"], emaillist, msg.as_string()) # This statement is of the form: server.sendmail(<Your email>, <Email receiving message>, Body_of_Email)