2017-11-23 4 views
0

Ich versuche, E-Mail über Google SMTP-Server mit dem folgenden einfachen Python und Mailclient zu senden.Google SMTP weniger sichere Anwendungen

Ich bin ein wenig verwirrt über den Teil, wo Google dieses Skript als unsicher kennzeichnet und verlangt, dass ich weniger sicheren Anwendungen den Zugriff auf das Gmail-Konto des Absenders erlaube.

Gibt es eine Möglichkeit, dieses Problem zu lösen, ohne weniger sichere Anwendungen für den Zugriff auf mein Google Mail-Konto zulassen zu müssen.

#Make necessary imports 

import mailclient 

#Craft the message 
msg = mailclient.Message("This will be the subject", "This will be the body content", '[email protected]', '[email protected]') 

#Create server object with gmail 

s = mailclient.Server('smtp.gmail.com', '587', '[email protected]', 'senderpassword', True) 

#Send email 

s.send(msg) 
+0

es hat nichts mit Code zu tun. Sie müssen es im Google-Konto aktivieren. refer - https://support.google.com/accounts/answer/6010255?hl=de –

+0

Ich denke, es ist möglich, andere Mail-Clients zu verwenden, ohne weniger sichere Anwendungen auf dem Konto zu aktivieren. Was sollte ich in meinen Code aufnehmen, um nicht markiert zu werden? – asla

+0

Google kann auf Codeebene nichts tun. Verwenden Sie die Outlook- oder Business SMTP-Serveranmeldeinformationen. –

Antwort

1

Schwer zu sagen, weil Google nicht sehr explizit für das, was sie nennen unsecure Anwendungen, aber ich denke, dass sie Anwendungen, die Ports 25 oder 587. Auf diese Ports verwenden, wird die Verbindung zunächst aufgebaut auf ein unverschlüsselter Kanal und wird nur dann verschlüsselt, wenn (und wenn) der Befehl STARTTLS ausgegeben wird.

Also denke ich, dass Sie sollten versuchen, eine Verbindung direkt über SSL auf Port aufzubauen 465. Ich weiß nicht, ob es möglich ist mailclient verwenden, aber mit der Standard-Bibliotheksmodule, sollte es so einfach sein wie:

import smtplib 
from email.message import EmailMessage 

msg = EmailMessage() 
msg['Subject'] = "This will be the subject" 
msg['From'] = '[email protected]' 
msg['To'] = [ '[email protected]' ] 
msg.set_content("This will be the body content") 

server = smtplib.SMTP_SSL('smtp.gmail.com') 
server.login('[email protected]', 'senderpassword') 
server.send_message(msg) 
server.quit() 
Verwandte Themen