我想联系谷歌邮件服务器,但我得到以下错误代码:
TypeError:无法将字节连接到IMAP4_SSL
我已经在谷歌中使用了我的帐户设置以启用IMAP
到目前为止我的代码(非常基本,我知道:)):
import imaplib
mail = "mail@gmail.com"
pwd = "pwd"
smtp_server = "imap.gmail.com"
smtp_port = 993
mail = imaplib.IMAP4_SSL(smtp_server)
mail.login(mail,pwd)
我的问题:
非常感谢您的帮助。 目前我只是在玩Python,但我很难理解这一点。我也已经坚持了一段时间。
此致 Sjaak
更新
Hi Max, 请参阅下面的错误:
mail.login(mail,pwd)
File "/usr/lib/python3.5/imaplib.py", line 580, in login
typ, dat = self._simple_command('LOGIN', user, self._quote(password))
File "/usr/lib/python3.5/imaplib.py", line 1180, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "/usr/lib/python3.5/imaplib.py", line 945, in _command
data = data + b' ' + arg
TypeError: can't concat bytes to IMAP4_SSL
Python的版本:3.5.2
THX。
问候,Sjaak -
更新
有效! thx帮忙
答案 0 :(得分:1)
首先将邮件定义为字符串:BastionASG:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
AvailabilityZones:
Fn::GetAZs: !Ref "AWS::Region"
Cooldown: '0'
DesiredCapacity: '0'
HealthCheckGracePeriod: '60'
HealthCheckType: EC2
MaxSize: '0'
MinSize: '0'
VPCZoneIdentifier: !Ref bastionSubnetList
LaunchConfigurationName:
Ref: BastionLC
Tags:
- Key: Environment
Value: !Ref awsTagsEnvironment
PropagateAtLaunch: true
- Key: Application
Value: !Ref awsTagsApplication
PropagateAtLaunch: true
- Key: Name
Value: !Join [ "-", [ !Ref awsTagsNamePrefix, "asg-ec2" ] ]
PropagateAtLaunch: true
TargetGroupARNs:
!If
- CreateNetworkLoadBalancer
- !Ref NLBTargetGroup
- !Ref "AWS::NoValue"
LoadBalancerNames:
!If
- CreateClassicLoadBalancer
- !Ref ELB
- !Ref "AWS::NoValue"
TerminationPolicies:
- OldestInstance
然后,您将其重新定义为新的IMAP对象:mail = "mail@gmail.com"
它不能同时出现这两种情况,所以现在邮件是IMAP4_SSL连接对象。
然后执行mail = imaplib.IMAP4_SSL(smtp_server)
,传递连接对象,而不是您想要的电子邮件地址。
您可以通过将一个定义或另一个定义更改为另一个名称来轻松解决此问题:
mail.login(mail,pwd)
为了清晰起见,我已经改变了它们。此外,IMAP服务器与SMTP服务器不同,因此您可能希望对变量名称更加小心,因此我也对其进行了更改。您也没有使用您的端口变量。