python: программа sendmail работает, если определена как функция, она не работает - PullRequest
1 голос
/ 28 мая 2020

У меня есть RHEL-бокс с python 2.4.3, и я пытаюсь написать сценарий python для отправки электронной почты.

У меня проблема в том, что сама программа работает, но когда Я определяю код как функцию и вызываю функцию, она жалуется. Как я могу исправить эту функцию?

Фактическая ошибка:

В заголовке не найдены адреса получателей

Это код:

def send_mail():
   SENDMAIL = "/usr/sbin/sendmail" # sendmail location
   FROM = "sender@domain.ca"
   TO = ["recipient@domain.ca"]
   SUBJECT = "Any subject"
   TEXT = "Any Text."

   # Prepare actual message

   message = """\
   From: %s
   To: %s
   Subject: %s

   %s
   """ % (FROM, ", ".join(TO), SUBJECT, TEXT)

   # Send the mail

   p = os.popen("%s -t -i" % SENDMAIL, "w")
   p.write(message)
   status = p.close()
   if status:
      print "Sendmail exit status", status

send_mail()

Спасибо Примечание: код взят отсюда: http://effbot.org/pyfaq/how-do-i-send-mail-from-a-python-script.htm

1 Ответ

1 голос
/ 28 мая 2020

Сообщение не должно иметь отступа. Строки заголовка должны быть в начале строки; отступ в заголовках используется для обозначения продолжения предыдущего заголовка.

   message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
...