尽管从wifi工作,但SMTP发送在4G下仍无法工作

问题描述

我正在一个学校项目中,该项目的Waveshare 4g帽子和sim卡连接到树莓派4。它使用我的团队设置的帐户远程拍摄图像并将其通过电子邮件发送给指定的用户。当我连接到wifi时,它会通过电子邮件将图像很好地发送给您,但是当我断开wifi并使用SIM卡时,它就不会发送电子邮件。我正在使用waveshare提供的bash脚本,该脚本为http设置了网络连接(到att),并且能够使用4g上网并访问网站,但是当我尝试使用python发送图像时, smtplib可以连接到电子邮件帐户并正常登录,但是挂起后没有在以下位置发送图像:

func TestMain(t *testing.T) {
   getSecret=func(secretName string) (Credentials,error) {
      return mockCredentials,nil
   }
   main()
}

我对这些协议没有很好的了解,我认为这与http和smtp是不同的协议有关,并且它需要某种看起来像安全连接的事实吗?通过我的ISP连接到网络有什么作用,而我的4g服务却没有?有简单的解决方法吗?我已在其他地方阅读过以确保我连接到的用于发送图像的gmail帐户具有“允许我使用的安全性较低的应用程序”。任何方向将不胜感激,谢谢。

 s.send_message(m)
  File "/usr/lib/python3.7/smtplib.py",line 967,in send_message
    rcpt_options)
  File "/usr/lib/python3.7/smtplib.py",line 882,in sendmail
   (code,resp) = self.data(msg)
  File "/usr/lib/python3.7/smtplib.py",line 568,in data
    self.send(q)
  File "/usr/lib/python3.7/smtplib.py",line 354,in send
    self.sock.sendall(s)
  File "/usr/lib/python3.7/ssl.py",line 1015,in sendall
    v = self.send(byte_view[count:])
  File "/usr/lib/python3.7/ssl.py",line 984,in send
    return self._sslobj.write(data)

并且如果它对设置我正在使用的4g帽子的shell脚本有帮助的话,

import smtplib
import ssl
import re

from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

USERNAME = <removed>
PASSWORD = <removed>

ADDRESS = "<removed>@gmail.com"
 
def send_mail(picture_path,text_string):
print("sending email")
to_address = get_email(text_string)
if to_address == FAIL:
    return
picture = get_picture(picture_path)

m = MIMEMultipart()
m["To"] = to_address
m["From"] = USERNAME
m["Subject"] = "Wildlife Remote"
m.attach(MIMEImage(picture))
print("photo attached")

s = smtplib.SMTP(host='smtp.gmail.com',port=587)
s.ehlo()
s.starttls()

s.login(USERNAME,PASSWORD)
print("email successfully logged in")
s.send_message(m)
s.quit()
print("email sent")

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)