前提・実現したいこと
さくらVPSのCentOS7からPython3.8でGmailを使ってメール送信を行いたい。
発生している問題・エラーメッセージ
Winodwsでは動作しているが、VPSで動かしたところエラーになった。
File "xxxx.py", line 543, in send_mail server.login(self.smtp_user_id, self.smtp_password) File "/root/.pyenv/versions/3.8.5/lib/python3.8/smtplib.py", line 734, in login raise last_exception File "/root/.pyenv/versions/3.8.5/lib/python3.8/smtplib.py", line 723, in login (code, resp) = self.auth( File "/root/.pyenv/versions/3.8.5/lib/python3.8/smtplib.py", line 646, in auth raise SMTPAuthenticationError(code, resp) smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials u15sm15137394pfl.215 - gsmtp') During handling of the above exception, another exception occurred:
該当のソースコード
def send_mail(self, title, msg): body = MIMEText(msg) body['Subject'] = self.subject body['From'] = self.from_addr body['To'] = self.to_addr server = smtplib.SMTP_SSL(self.smtp_server, self.smtp_port, context=ssl.create_default_context()) server.login(self.smtp_user_id, self.smtp_password) server.send_message(body) ※self.xxxxxの設定値 smtp_server=smtp.gmail.com smtp_port=465 smtp_user_id=xxxx@gmail.com smtp_password=xxxx from_addr=xxxxx@gmail.com to_addr=xxxxx@gmail.com subject=xxxxxx
試したこと
・gmail以外での確認(yahoo, outlook)
・SSLを使わずsmtplib.SMTPでポート587を使って送信
・Pythonの別バージョン(Python3.7.3, Python3.8.0, Python3.8.5)での確認
・サクラVPS以外での確認(Kagoya VPS CentOS7)
・サーバーの環境設定(ポートの確認)
[root@ik1-427-45876 market_check]# cat /etc/sysconfig/iptables
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
COMMIT
補足情報
プログラムはWindowsで動作しており、ネットでの公開情報から間違っていない気がしています。
サーバーの設定だとは思うのですが、まったくわかりません。
ご教示の程、何卒宜しくお願い致します。