kullanarak (SSL veya TLS). Sadece socket
s kullanımına izin verilir (smtplib
değil). İhtiyacım olan: HELO
komutu, MAIL FROM
, RCPT TO
ve DATA
.Bağlan SMTP Gmail SMTP posta sunucusuna bağlanmak ve bana verilen iskelet kodu tarafından belirtilen görevleri yerine getirmeye çalışıyorum Python
yayınlanan benzer sorunların çoğunu durum vardır, ancak doğru cevap almadık. Örneğin: Implementing Transport Layer Security in Python - Simple Mail Client
programı noktası 587
fazla smtp.gmail.com
bağlanmak için gereklidir.
kullanma STARTTLS: SSL kullanarak
mailserver = 'smtp.gmail.com' clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((mailserver, 587)) recv = clientSocket.recv(1024) print recv if recv[:3] != '220': print '220 reply not received from server.' #Send HELO command and print server response heloCommand = 'HELO Alice\r\n' clientSocket.send(heloCommand) recv1 = clientSocket.recv(1024) print recv1 if recv1[:3] != '250': print '250 reply not received from server.' #Send MAIL FROM command and print server response. command = "STARTTLS\r\n" clientSocket.send(command) recvdiscard = clientSocket.recv(1024) print recvdiscard clientSocket.send("MAIL From: email\r\n") recv2 = clientSocket.recv(1024) print recv2 if recv2[:3] != '250': print '250 reply not received from server.'
:
SonraclientSocketSSL = ssl.wrap_socket(clientSocket)
clientSocketSSL
clientSocket
tüm örneklerini değiştirir İki farklı yaklaşımlar aldık. STARTTLS satırları da kaldırılır ve en üstüneimport ssl
eklenir.
İlk yöntem kullanıldığında, MAIL FROM:
komutu hiçbir şey döndürmez. Aşağıdaki çıktıyı alıyorum:
250 mx.google.com at your service
220 2.0.0 Ready to start TLS
250 reply not received from server.
SSL, ben bağlantılı yazı ile aynı alıyorum kullanarak:
ssl.SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Burada bir şey eksik? Sanırım en iyi seçeneğim TLS kullanmaktır ama bunun hakkında nasıl bir fikrim yok? MAIL FROM
komutumda bir sorun var mı? Özellikle, STARTTLS
komuta 220
yanıtı aldıktan sonra - SSL kullanırken
Bunu denediniz mi? [piton ile e-posta gönderme] [1] [1]: http: // stackoverflow.com/a/399240/986760 – fayyazkl
@fayyazkl bahsettiğim gibi sadece soketleri kullanabilirim, değil smtplib – user1287523
Kodunuzdaki girintiyi sabitleyerek başlayın. –