Использование функции для сообщения в электронной почте smtplib - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь отправить электронное письмо самому себе с результатами некоторого веб-сэмпинга, который я сделал.Соскоб все происходит в функции.Поэтому я попытался установить функцию в качестве сообщения для моей электронной почты, но она просто не работает.

Вот мой код (все еще довольно новый, так что, пожалуйста, не слишком много кодируйте, я знаю, что я все еще могу его многократно реорганизовать)

from bs4 import BeautifulSoup
from email.mime.text import MIMEText
import requests
import smtplib

page = requests.get("https://www.sportsinteraction.com/soccer/england/premier-league-betting/")

soup = BeautifulSoup(page.content, 'html.parser')
matches = soup.find_all(class_="game")

def betting_odds(data):
    for games in data:
        teams = games.find_all(class_="name")
        odds = games.find_all(class_="price wide")
        if len(games.find_all(class_="date")) > 0:
            print(games.find(class_="date").get_text())
        team1 = teams[0].get_text()
        draw = teams[1].get_text()
        team2 = teams[2].get_text()
        odds1 = odds[0].get_text()
        odds_draw = odds[1].get_text()
        odds2 = odds[2].get_text()
        print("{}  {} \n{}  {} \n{}  {} \n".format(team1, odds1, draw, odds_draw, team2, odds2))    

fromx = 'email@email.com'
to = 'email@emai.com'
msg = MIMEText('Here are the odds for the upcoming premier league games\n\n{}'.format(betting_odds(matches)))
msg['Subject'] = 'Premier League Odds'
msg['From'] = fromx
msg['To'] = to

smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.ehlo()

smtpObj.starttls()
smtpObj.login('Email@email.com', 'password')
smtpObj.sendmail(fromx, to, msg.as_string()) 
smtpObj.quit()

Когда я запускаю это,все результаты отображаются в командной консоли именно так, как я хочу, чтобы они отображались, а затем отправляет электронное письмо.Как только я получаю электронное письмо, у него есть тема, и первая строка сообщения верна, но затем в ней говорится Нет.

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 25 октября 2018

Это было решено.Я завершил это, создав переменную для хранения строк, и продолжил объединять их вместе через циклы.Затем я вернул переменную в конце.

Ура!

...