Метод Firebase JavaScript (Web) SDK .set
возвращает обещание, то есть обещание уже существует. См. Электронная документация «Задать документ ».
blockquote>// Add a new document in collection "cities" db.collection("cities").doc("LA").set({ name: "Los Angeles", state: "CA", country: "USA" }) .then(function() { console.log("Document successfully written!"); }) .catch(function(error) { console.error("Error writing document: ", error); });
Возможно, вам будет проще использовать async / await (более интуитивно понятный). В этом сценарии вы бы сделали что-то вроде:
async function writeDocument(obj){ var writeOperation = await db.collection("cities").doc("LA").set(obj); //now this code is reached after that async write }
smtplib
автоматически не включает a From:
заголовок, таким образом, необходимо поместить один в себя:
message = 'From: me@example.com\nSubject: [PGS]: Results\n\nBlaBlaBla'
(На самом деле, smtplib
не включает заголовков автоматически, но просто отправляет текст, что Вы даете его как необработанное сообщение),
Можно использовать email.message. Класс сообщений и использование это для генерации заголовков пантомимы, включая from:
, to:
и subject
. Отправьте as_string()
результат через SMTP.
>>> from email import message
>>> m1=message.Message()
>>> m1.add_header('from','me@no.where')
>>> m1.add_header('to','myself@some.where')
>>> m1.add_header('subject','test')
>>> m1.set_payload('test\n')
>>> m1.as_string()
'from: me@no.where\nto: myself@some.where\nsubject: test\n\ntest\n'
>>>
"Отправитель", которого Вы указываете в этом случае, является отправителем конверта, который передается на сервер SMTP.
То, что Ваш MUA (Почтовый Агент пользователя - т.е. перспектива/Thunderbird и т.д.) показывает Вам, "От": заголовок.
Обычно, если бы я использую smtplib, я скомпилировал бы заголовки отдельно:
headers = "From: %s\nTo: %s\n\n" % (email_from, email_to)
Формат От заголовка условно обычно "Name" <user@domain>
Необходимо включать заголовок "Идентификатора сообщения" и "Ответ - К" заголовку также во всей связи. Тем более, что спам-фильтры могут взять на отсутствии их как большая вероятность, что почта является спамом.
Если у Вас почтовое тело в переменном теле, просто скомпилируйте полное сообщение с:
message = headers + body
Отметьте двойную новую строку в конце заголовков. Также стоит отметить, что серверы SMTP должны разделить заголовки с новыми строками только (т.е. LF - перевод строки). Однако я видел сервер Windows SMTP или два, который использует \r\n (т.е. CRLF). Если Вы находитесь в Windows, YMMV.