Ошибка при отправке электронной почты с помощью Streamsets - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь отправить электронное письмо с помощью StreamSets.

для этого я использую Справочник в качестве источника (список квитанций в текстовом файле) и

Jython Evaluator для обработки и корзина для пункта назначения (только для тестирования).

когда я запускаю конвейер, работаю без ошибок. но получаю сообщение об ошибке на мой sender_email вот так:

Your message wasn't delivered to com.streamsets.pipeline.stage.processor.scripting.ScriptRecord@3ea57368 because the domain 3ea57368 couldn't be found. Check for typos or unnecessary spaces and try again.

Вот мой пример кода:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import logging
for record in records:
  try:
    msg = MIMEMultipart()
    msg['Subject'] = 'simple email in python'
    message = 'here is the email'
    msg.attach(MIMEText(message))
    mailserver = smtplib.SMTP('smtp.gmail.com',587)
    mailserver.ehlo()
    mailserver.starttls()
    mailserver.ehlo()
    mailserver.login('sateesh.karuturi9@gmail.com', 'password')
    mailserver.sendmail('sateesh.karuturi9@gmail.com',record,msg.as_string())
    output.write(record)
    mailserver.quit()
  except Exception as e:
    error.write(record, str(e))

Вот моя ошибка: enter image description here

1 Ответ

0 голосов
/ 18 сентября 2018

Вы видите это, потому что вы используете объект записи в качестве адреса электронной почты - com.streamsets.pipeline.stage.processor.scripting.ScriptRecord@3ea57368 - это строковое значение экземпляра записи.

Если вы используете текстовый формат данных в источнике Справочника, тогда вы можете использовать record.value['text'] вместо record:

mailserver.sendmail('sateesh.karuturi9@gmail.com', record.value['text'], msg.as_string())

Если вы используете другой формат данных (с разделителями, JSON и т. Д.), Используйте предварительный просмотр, чтобы выяснить, в каком поле находится адрес электронной почты, и ссылаться на него таким же образом.

...