LoginSignup
1
4

More than 5 years have passed since last update.

Flask-Mailを使用してさくらのメールサーバーからメールを送る

Posted at

はじめに

Pythonの軽量WEBフレームワークであるFlaskの拡張機能Flask-Mailを使用して、メールを送信してみました。メールサーバーにはさくらのレンタルサーバーのものを使用しました。

設定

config.pyを以下のように作成。

MAIL_SERVER = '[メールアドレスの@以降]'
MAIL_PORT = 587
MAIL_USE_TLS = True
MAIL_USE_SSL = False
MAIL_USERNAME = '[メールアドレス]'
MAIL_PASSWORD = '[パスワード]'
MAIL_DEFAULT_SENDER = '[メールアドレス]'

使用方法

from flask import Flask
from flask_mail import Mail, Message
import config

app = Flask(__name__)
app.config.from_object('config')
mail = Mail(app)

@app.route("/")
def index():
    msg = Message(recipients=[送信先メールアドレス],
                  body=[内容],
                  subject=[タイトル])
    mail.send(msg) 

メモ

以下のようなエラーが出力された。

  File "/usr/local/lib/python3.7/site-packages/flask_restful/__init__.py", line 480, in wrapper
    resp = resource(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/flask/views.py", line 88, in view
    return self.dispatch_request(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/flask_restful/__init__.py", line 595, in dispatch_request
    resp = meth(*args, **kwargs)
  File "./api.py", line 74, in post
    mail.send(msg)
  File "/usr/local/lib/python3.7/site-packages/flask_mail.py", line 492, in send
    message.send(connection)
  File "/usr/local/lib/python3.7/site-packages/flask_mail.py", line 427, in send
    connection.send(self)
  File "/usr/local/lib/python3.7/site-packages/flask_mail.py", line 192, in send
    message.rcpt_options)
  File "/usr/local/lib/python3.7/smtplib.py", line 867, in sendmail
    raise SMTPSenderRefused(code, resp, from_addr)
smtplib.SMTPSenderRefused: (550, b'5.7.1 <[メールアドレス]>... Command rejected', '[メールアドレス]')

不正なアクセスに対するセキュリティを強化するために、日本国外IPアドレスからのアクセスを制限しているらしい。さくらインターネットサーバコントロールパネルのメニューから「国外IPアドレスフィルタ」を選択、「国外IPアドレスからのアクセス制限」を無効にすることで解決。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4