Tôi muốn gửi email trực tiếp từ tập lệnh đến tài khoản email Gmail, bằng cách kết nối trực tiếp với smtp.gmail.com
.Cách gửi thư trực tiếp đến máy chủ SMTP mà không cần xác thực?
Tuy nhiên, tôi không muốn có mật khẩu gmail trong tập lệnh. Từ những gì tôi đã đọc, có vẻ như Gmail yêu cầu xác thực trước khi nó sẽ gửi bất kỳ thư nào, bao gồm cả cho người dùng riêng của mình.
Câu hỏi của tôi là, thư đến từ máy chủ SMTP khác được phân phối như thế nào, vì máy chủ SMTP đó sẽ không có thông tin đăng nhập Gmail. Gmail chỉ yêu cầu xác thực cho người gửi "ẩn danh" và vì tập lệnh của tôi đang chạy trên máy tính cá nhân, nó có phải bảo mật cao hơn không? Đây là kịch bản python Tôi đang chạy:
import smtplib
import email
msg = email.message.Message()
msg["From"] = "[email protected]"
msg["To"] = "[email protected]"
msg["Subject"] = "Test message"
server = smtplib.SMTP("smtp.gmail.com",587)
server.starttls()
server.ehlo_or_helo_if_needed()
try:
failed = server.sendmail("[email protected]","[email protected]", msg.as_string())
server.close()
except Exception as e:
print(e)
Khi tôi chạy kịch bản này, đầu ra là:
(530, b'5.5.1 Authentication Required. Learn more at
5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 fw5sm21125889wib.0', '[email protected]')
Câu hỏi của tôi là, làm thế nào để các máy chủ SMTP bên ngoài tránh vấn đề này? Và là bất cứ điều gì họ làm bản sao trong một kịch bản địa phương, hoặc không yêu cầu bản ghi DNS đảo ngược chính xác, bản ghi SPF, vv?
đây "25" đại diện cho những gì? @MaK –
25 là cổng SMTP, được sử dụng để liên lạc với các máy chủ thư. https://en.m.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol – MaK
có @Mak nhưng có tĩnh không? hoặc năng động? là bất kỳ cổng nào của họ có sẵn? –