2016-08-03 1 views
1

Я пытаюсь написать программу, которая отправляет письмо от Gmail, с текстом, который включает в себя котировки акций в реальном времени. Я использую модуль для получения котировок акций в строчном формате (это работает), и я написал функцию отправки электронной почты из gmail. Функция message_send работает только в том случае, если я даю ей простую строку. Он не работает, если я передам ему переменную aapl_string. Смотрите ниже код:Python - текст не отображается в отправленном кодом электронном письме, если строка является результатом формулы

from yahoo_finance import * 
import smtplib 

def message_send(messagebody): 
    fromaddr = 'REDACTED' 
    toaddrs = 'REDACTED' 
    msg = messagebody 

    # Credentials (if needed) 
    username = 'REDACTED' 
    password = 'REDACTED' 

    # The actual mail send 
    server = smtplib.SMTP('smtp.gmail.com:587') 
    server.starttls() 
    server.login(username,password) 
    server.sendmail(fromaddr, toaddrs, msg) 
    server.quit() 

aapl = Share('AAPL') 

aapl.refresh() 

price_aapl = aapl.get_price() 

aapl_string = "The current price of AAPL is: " + price_aapl 
print(aapl_string) 

message_send(aapl_string) 

Любые идеи, почему электронная почта рассылает, но содержит пустой текст при использовании aapl_string в качестве аргумента для функции message_send?

Спасибо!

ответ

1

Вы могли бы сделать

message_send("The current value is %s" %price_aapl) 

и это должно заставить его работать :)

1

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

aapl_string = "The current price of AAPL is: %d" % price_aapl 

% D представляет собой заполнитель для целого price_aapl. Вы можете посмотреть здесь ->http://www.diveintopython.net/native_data_types/formatting_strings.html для получения дополнительной информации о форматировании строк в python.

+0

Забыл добавить это - это строка и инструкция печати в конце кода работает – offthewall1066

+1

О, тогда вместо% d вы просто положили бы% s –

 Смежные вопросы

  • Нет связанных вопросов^_^