2014-09-11 3 views
0

Ссылка на исходное сообщение: Why am I not able to send a Colon in a message but am able to send a Semicolon??? (Python, SMTP module) aПочему этот текст не появляется на моем телефоне?

Это как-то связано с двоеточием в то время. Я пробовал форматировать его разными способами, и двоеточие в это время заставляет текст отображаться на моем телефоне пустым. Вот простая версия текстовой функции, которую я использую. Это SMTP для iPhone Verizon, если это имеет значение. Я мог бы использовать точку с запятой, но она не работает:

import time 
current = (str(time.strftime("%I:%M %p"))) 

print (current) 

def Text(): 
    import smtplib 
    ContentMatch = ("Content match, website checked at: ", current) 
    username = ("EmailUser") 
    password = ("Password1") 
    fromaddr = ("[email protected]") 
    toaddrs = ("[email protected]") 
    message = (str(ContentMatch)) 
    # The actual mail send 
    server = smtplib.SMTP('smtp.gmail.com:587') 
    server.starttls() 
    server.login(username,password) 
    server.sendmail(fromaddr, toaddrs, message) 
    server.quit() 

Text() 
+0

@paxdiablo нет I удалено до оригинала. Это более простая версия, поскольку на другую нельзя ответить –

+1

Извинения, Престон, в то время, когда я смотрел, оригинал все еще был там, и похоже, что это была лишь дополнительная информация, которая была бы лучше добавлена ​​к этому оригиналу. Я восстановил этот, извиняюсь за неприятности. Возможно, вам захочется добавить некоторую исходную информацию к этой, поскольку ссылка, которую вы указали выше, доступна только для определенного уровня репутации. – paxdiablo

ответ

0

Ваше сообщение не соответствует действительности. Строка сообщения должна быть сообщением, совместимым с RFC2822. То есть он должен включать заголовок и необязательный элемент.

Попробуйте это:

message = "From: %s\n\n%s\n"%(fromaddr, ContentMatch) 

Но Python предоставляет специальные классы (например, email.mime.text.MIMEText) для форматирования сообщений электронной почты, так что вам не придется делать это вручную:

import time 
import smtplib 
from email.mime.text import MIMEText 
from email.utils import formatdate 

current = time.strftime("%I:%M %p") 
message_text = "Content match, website checked at: %s" % current 


def Text(): 
    # Parameters for sending 
    username = "xxx" 
    password = "xxx" 
    fromaddr = "[email protected]" 
    toaddr = "[email protected]" 

    # Create the message. The only RFC2822-required headers 
    # are 'Date' and 'From', but adding 'To' is polite 
    message = MIMEText(message_text) 
    message['Date'] = formatdate() 
    message['From'] = fromaddr 

    # Send the message 
    server = smtplib.SMTP('smtp.gmail.com:587') 
    server.starttls() 
    server.login(username, password) 
    server.sendmail(fromaddr, toaddr, message.as_string()) 
    server.quit() 

Text() 
+0

Спасибо! Я попробую и посмотрю, работает ли это! –

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