ฉันไม่สามารถส่งและรับอีเมลผ่าน Outlook ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้จากssmtp.

ssmtp: 550 5.3.4 554-554 5.2.0 STOREDRV.Deliver; delivery result banner

นี่คือเนื้อหาของ/etc/ssmtp/ssmtp.conf:

[email protected]
mailhub=smtp-mail.outlook.com:587
[email protected]
AuthPass=mypassword
UseSTARTTLS=YES
hostname=sierra-test
FromLineOverride=YES
answer

โปรดขยายคำถามของคุณด้วยรายละเอียดแพลตฟอร์มของคุณ (การแจกจ่าย เวอร์ชัน เวอร์ชัน ssmtp คุณติดตั้งจากที่ใด ฯลฯ)

เกี่ยวกับไฟล์ปรับแต่งของคุณ:

/etc/ssmtp/ssmtp.conf

ปัญหาบางอย่างที่ฉันเห็น (ซึ่งอาจใช้หรือไม่ใช้ก็ได้ ขึ้นอยู่กับเวอร์ชัน):

  1. ชื่อโฮสต์ควรมี FQDN (ชื่อโดเมนแบบเต็ม) มิฉะนั้น Outlook (หรือ Gmail, Yahoo และอื่นๆ) อาจปฏิเสธ คุณสามารถลองเพิ่มได้
  2. ดูเหมือนว่าคุณจะไม่มี "AuthMethod"
  3. บางคนบอกว่า UseTLS และ UseSTARTTLS แยกกัน คนอื่นวางการตั้งค่าทั้งสองไว้ คุณสามารถลองสลับระหว่างตัวเลือกเหล่านั้น

ตัวอย่าง:

[email protected]
FromLineOverride=YES    # usually goes with root
mailhub=smtp-mail.outlook.com:587
rewriteDomain=outlook.com    # shouldn't be needed if you are not overwriting from, but doesn't hurt
[email protected]
AuthPass=mypassword
AuthMethod=LOGIN             # could be plain or cram-md5 for ex. 
UseTLS=Yes                   # this one might be yes or no
UseSTARTTLS=Yes 
hostname=sierra-test.domain.com  # full domain here, might help

คุณต้องจำไว้ว่าหากคุณเปิดใช้งาน 2FA (การตรวจสอบสิทธิ์แบบสองปัจจัย) สำหรับอีเมล/บัญชี คุณจะต้องตรวจสอบความถูกต้องก่อนจึงจะอนุญาตให้ส่งอีเมลได้

การดีบักปัญหาจะง่ายกว่าหากคุณสามารถให้ผลลัพธ์ที่ละเอียดยิ่งขึ้น ใช้สิ่งต่อไปนี้เพื่อรับเอาต์พุต verbose:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail -v <RECEIPIENT>

อย่างไรก็ตาม เนื่องจากคุณได้กล่าวถึงoutlookในคำถามของคุณ ปัญหาที่โด่งดังที่สุดเกี่ยวกับ outlook คือชื่อผู้ใช้บนเครื่อง Linux ในพื้นที่และชื่อผู้ใช้บนเซิร์ฟเวอร์ไม่ตรงกัน

ตัวอย่างเช่น:

  • บนเครื่องท้องถิ่นของคุณecho $USERให้ค่าfirstname
  • ในขณะที่ชื่อผู้ใช้อีเมลของคุณคือ [email protected]

ซึ่งสามารถแก้ไขได้โดยการระบุข้อมูลผู้ใช้ในแฟล็กคำสั่ง ให้ลองทำดังนี้:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail -v <RECEIPIENT> -f<firstname.lastname>

เข้าสู่ระบบบัญชีของคุณและยืนยันหมายเลขโทรศัพท์มือถือหรือวิธีการตรวจสอบอื่น ๆ ที่จำเป็น แล้วลองส่งอีเมลอีกครั้ง