Sendgrid с Cloud9 через опцию WebApi Python
У меня проблемы с использованием sendgrid из моей среды Cloud9 Python. Это мой код, предложенный опцией установки SendGrid.
ПРИМЕЧАНИЕ: я сгенерировал реальный API, очевидно, "YOUR_API_KEY" был заменен соответствующим ключом.
echo "export SENDGRID_API_KEY = 'YOUR_API_KEY'"> sendgrid.env
echo "sendgrid.env" >>.gitignore
источник./sendgrid.env**
pip установить sendgrid
# using SendGrid's Python Library
# https://github.com/sendgrid/sendgrid-python
import sendgrid
import os
from sendgrid.helpers.mail import *
sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
from_email = Email("test@example.com")
to_email = Email("myemail@example.com")
subject = "Sending with SendGrid is Fun"
content = Content("text/plain", "and easy to do anywhere, even with Python")
mail = Mail(from_email, subject, to_email, content)
response = sg.client.mail.send.post(request_body=mail.get())
print(response.status_code)
print(response.body)
print(response.headers)
Получение этой ошибки
> Traceback (most recent call last): File "schedule.py", line 92, in
> <module>
> response = sg.client.mail.send.post(request_body=mail.get()) File
> "/usr/local/lib/python2.7/dist-packages/python_http_client/client.py",
> line 204, in http_request
> return Response(self._make_request(opener, request)) File "/usr/local/lib/python2.7/dist-packages/python_http_client/client.py",
> line 138, in _make_request
> return opener.open(request) File "/usr/lib/python2.7/urllib2.py", line 410, in open
> response = meth(req, response) File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
> 'http', request, response, code, msg, hdrs) File "/usr/lib/python2.7/urllib2.py", line 448, in error
> return self._call_chain(*args) File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
> result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
> raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 401: Unauthorized
Так это связано с отсутствующими библиотеками? какое-то ограничение Cloud9? Так не должно быть, так как я даже не использую опцию SMTP.,
1 ответ
Итак, я обнаружил, что Cloud9 не позволяет вам устанавливать переменные среды, поэтому мне пришлось жестко закодировать мой API KEY в приведенном выше коде.
Все заслуги автора, использующего Cloud9 IDE и Mailgun, получают эту ошибку Net::SMTPSyntaxError в Devise::RegistrationsController#create, которая узнала об этом при работе с подобной проблемой.
Спасибо!