質問: smtplib.SMTP(smtp_host, 25, timeout=10) server.login(smtp_account_id, smtp_account_pass) server.send_message(msg) server.quit() print('Content-Type: text/html; charset=utf-8') print() print('メール送信完了') print("") print(cont) print("") コード ``` これでサーバー上にアップロードしcontact.pyのパーミッションを755にします。 実際行ってみると送信されてきたメールの文章が途中で切られてこんな感じになってしまいます。 ここに相談内容を記入してください。ここã ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/1c13eebcbc2e6782413f7773d4ddd982.jpeg) 2週間くらいあれやこれややったり調べたりしたのですがわからずじまいです。 大変申し訳ございませんがご教授願えれば幸いです。 またpython cgiのデバッグのいい方法があったら教えてください。
回答: おはようございます。 問題文読ませていただきました。 まず、formのPOSTに関して問題ないことは確かめていますか?多分大丈夫だと思いますが再度ご確認のほど、お願いいたします。(contact.pyにてprint(cont)の値へ、正しくtextareaで入力したデータが格納されているのか?) 次にこちらの記事のサンプルを試してみて、問題解決しそうかご確認いただけますか?🙇♂️ ・Pythonでメール送信~Gmail編~ ・Pythonでメールを送信 よろしくお願いいたします。🙇♂️ <追記> 以下のコードを利用できる新しいpythonファイルを作成して、必要箇所を変更し、メール送信ができることをご確認いただけますか?🙇♂️ ``` # https://qiita.com/kawa-Kotaro/items/460977f050bf0e2828f2 import smtplib from email.mime.text import MIMEText from email.utils import formatdate # emailを送るfrom。 # ※要変更 fromAddr = 'from email address' # emailを送るto。 # ※要変更 toAddr = 'to email address' # emailを送る際のログインパスワード # ※要変更 password = 'password' # メッセージを作成する関数 def createMessage(fromAddr, toAddr, subject, body): msg = MIMEText(body) msg['Subject'] = subject msg['From'] = fromAddr msg['To'] = toAddr msg['Date'] = formatdate() return msg # メッセージを送信する関数 def sendMail(fromAddr, toAddr, bodyMsg): smtpobj = smtplib.SMTP('smtp.gmail.com', 587) smtpobj.ehlo() smtpobj.starttls() smtpobj.ehlo() # ログインする。 smtpobj.login(fromAddr, password) # メッセージを送信する。 smtpobj.sendmail(fromAddr, toAddr, bodyMsg.as_string()) smtpobj.close() # ※要変更 sendMail(fromAddr, toAddr, createMessage( fromAddr, toAddr, '題名を入力してください', 'メール送信内容を入力してください。formで格納されるデータ内容')) ``` 自分の方ではこちらでうまくいきました。