たまにはエンジニアらしくしっかりした記事を
というわけでflaskといえば巷で大流行Pythonのお手軽フレームワークでございます。
環境構築等はここでは記載しませんのであしからず・・・
今回はフォーム入力した内容をGmailに送信する
といった内容です。
コード関連以外に用意するものは送信用と受信用(確認用)のgmailアカウント
<script language="JavaScript" type="text/JavaScript">
    function check(){
        if(window.confirm('送信してよろしいですか?')){ 
    return true;
    }
    else{
        window.alert('キャンセルされました'); 
        return false; /
    }
}
</script>
<form method="POST" enctype="multipart/form-data" onSubmit="return check()">
        <div class="field">
            <div for="name">お名前</div>
            <input id="students_form" type="text" name="name" placeholder="あなたのお名前を入力してください" required title="must be alphanumeric in 6-12 chars">
        </div>
        <div>
            <div for="league" required>好きなリーグは?</div>
            <select name="league" required>
                <option value="">選んでね</option>
                <option value="プレミア">イングランドプレミアリーグ</option>
                <option value="リーガ">ラリーガサンタンデール</option>
                <option value="ブンデス">ブンデスリーガ</option>
                <option value="セリエ">セリエA</option>
                <option value="リーグアン">リーグアン</option>
            </select>
        </div>
        <div>
            <div for="message" required>自由記載</div>
            <textarea name="about" required placeholder="好きなことを書いてね" onkeyup="count_down(this);"></textarea>
        </div>
        <button type="submit">送信</button>
</form>CSS等は割愛。
なんてことはないtextフォームとプルダウン選択とtextareaのフォームに記載していくあるあるフォーム
from flask_mail import Mail
from email.mime.text import MIMEText
from flask import Flask, render_template, request
import smtplib
app = Flask(__name__)
@app.route("/form", methods=['GET','POST'])
def form():
    if request.method == "POST":
        from_email = 'send@gmail.com'
        to_email = 'check@gmail.com'
        account = 'send@gmail.com'
        password = 'password'
        subject = 'テスト送信'
        name =  request.form.get('name')
        year = request.form.get('league')
        about = request.form.get('about')
        bodytext = "名前:" + name + "\n" + "好きなリーグ:" + year + "\n" + "自由記載:" + about
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()
        server.login(account, password)
        msg = MIMEText(bodytext)
        msg['subject'] = subject
        msg['From'] = from_email
        msg['To'] = to_email
        server.send_message(msg)
        server.close()
        return render_template('send.html', success=True)
    return render_template("form.html")
@app.route("/send")
def send():
    return render_template('send.html')使用ライブラリはflask導入の上でほぼほぼ入ってくるもので、ここでは割愛
ポイントはメールを送信するうえで送信用のアカウントにログインして
そこからメールを送信するイメージなので、23行目以降の工程が必要となる
outlook等を使用したい場合は
“SMTP” “outlook”で検索すれば必要な設定値が確認できます。
といった具合にsmtplibやMIMETextを使用してメール本文を構築
送信後の画面は↓
<div class="send_main">
    <h1>メッセージを送信しました</h1>
    <input class="button-glow" type="button" value="戻る" onclick="history.back()" />
</div>うまいこといけば
テスト送信
名前:XXXXXXXXX
好きなリーグ:XXXXXXX
自由記載:あああああああ
みたいな感じでメールが届きます。
ちなみに私はイングランドプレミアリーグ贔屓です。

 
  
  
  
  
