sendmail: จะตั้งค่า sendmail บน Ubuntu ได้อย่างไร? [ปิด]


190

เมื่อฉันค้นหาการกำหนดค่า sendmail บน Ubuntu ฉันไม่ได้รับคำตอบที่ชัดเจนใด ๆ แต่ละคนคิดว่าฉันรู้ว่าพวกเขากำลังพูดถึงอะไร

ฉันต้องการการกำหนดค่าพื้นฐานเพื่อเปิดใช้งานการส่งอีเมลโดยทั่วไปฉันจะใช้กับเครื่องมือ Google App เพื่อเปิดใช้งานการส่งอีเมลจากเซิร์ฟเวอร์ dev

ฉันทำสิ่งนี้แล้ว:

sudo apt-get install sendmail

แล้วก็

sudo sendmailconfig

แต่ฉันไม่รู้ว่าอันที่จริงคนสุดท้ายทำอะไร


4
@ThiefMaster เราจะไม่ย้ายคำถามไปยังไซต์ SE ที่เหมาะสมอีกต่อไปหรือไม่
Michael

คำถามนี้เก่าเกินไปที่จะย้ายข้อมูล (และมันก็เป็นเช่นนั้นเมื่อฉันปิดมัน)
ThiefMaster

1
คำตอบเหล่านี้ไม่เหมาะกับฉัน ฉันพบบทความออนไลน์ที่เหมาะกับฉัน: daveperrett.com/articles/2013/03/19/…
ออนไลน์ Sid

@ThiefMaster ให้คำจำกัดความว่า "แก่เกินไป" คุณกำลังบอกว่า sendmail ล้าสมัยหรือไม่ คิดใหม่อีกครั้ง.
PJ Brunet

@PJBrunetWhile ฉันคิดว่าsendmailล้าสมัย (มีทางเลือกที่ดีกว่ามาก!) ความคิดเห็นของฉันห้าปีที่ผ่านมาเป็นเพียงความจริงที่ว่าเราไม่ได้โยกย้ายคำถามที่เก่าไปยังไซต์ SE อื่น
ThiefMaster

คำตอบ:


146

เมื่อคุณพิมพ์sudo sendmailconfigคุณควรได้รับแจ้งให้กำหนดค่า sendmail

สำหรับการอ้างอิงไฟล์ที่ถูกอัพเดตระหว่างการตั้งค่าจะอยู่ในรายการต่อไปนี้ (ในกรณีที่คุณต้องการอัพเดตด้วยตนเอง):

/etc/mail/sendmail.conf
/etc/cron.d/sendmail
/etc/mail/sendmail.mc

คุณสามารถทดสอบ sendmail เพื่อดูว่ามีการกำหนดค่าและตั้งค่าอย่างถูกต้องหรือไม่โดยพิมพ์ข้อความต่อไปนี้ในบรรทัดคำสั่ง:

$ echo "My test email being sent from sendmail" | /usr/sbin/sendmail myemail@domain.com

ต่อไปนี้จะช่วยให้คุณเพิ่ม smtp relay ไปยัง sendmail:

#Change to your mail config directory:
cd /etc/mail

#Make a auth subdirectory
mkdir auth
chmod 700 auth

#Create a file with your auth information to the smtp server
cd auth
touch client-info

#In the file, put the following, matching up to your smtp server:
AuthInfo:your.isp.net "U:root" "I:user" "P:password"

#Generate the Authentication database, make both files readable only by root
makemap hash client-info < client-info
chmod 600 client-info
cd ..

เพิ่มบรรทัดต่อไปนี้เพื่อ sendmail.mc แต่ก่อน MAILERDEFINITIONSตรวจสอบให้แน่ใจว่าคุณอัปเดตเซิร์ฟเวอร์ smtp ของคุณ

define(`SMART_HOST',`your.isp.net')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnl

เรียกใช้การสร้าง sendmail.cf (หรือเรียกใช้make -C /etc/mail):

m4 sendmail.mc > sendmail.cf

รีสตาร์ท sendmail daemon:

service sendmail restart

2
เมื่อลองคำสั่งสุดท้ายฉันจะได้รับ bash นี้: อีเมลทดสอบของฉันถูกส่งจาก sendmail: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
UXE

2
ขอโทษเมื่อคุณพูดว่าyour.isp.netฉันจะใส่gmail.comหรือsmtp.gmail.comมี?
Houman

30
สิ่งหนึ่งที่ไม่ชัดเจนคือสิ่งที่ทดแทนใน AuthInfo: your.isp.net "U: root" "I: ผู้ใช้" "P: รหัสผ่าน" โดยเฉพาะคุณเปลี่ยน U: root และ I: ผู้ใช้
Tom อย่างไร Haws

13
ในกรณีที่ผู้อื่นสับสนสตริงภายในsendmail.mcไฟล์จะต้องอยู่ในรูปแบบBACKTICK + ข้อความของคุณ + QUOTE เดียว
โทมัส

2
นี่เป็นการกำหนดค่าเดียวที่ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน: linuxconfig.org/configuring-gmail-as-sendmail-email-relay
Jared Eitnier

35

ฉันได้คำตอบที่ดีที่สุด (ยังไม่สามารถตอบกลับ) หลังจากแก้ไขเพียงเล็กน้อย

สิ่งนี้ไม่ได้ผลสำหรับฉัน:

FEATURE('authinfo','hash /etc/mail/auth/client-info')dnl

เครื่องหมายคำพูดเดี่ยวแรกสำหรับแต่ละสตริงควรเปลี่ยนเป็น backtick (`) ดังนี้:

FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl

หลังจากการเปลี่ยนแปลงฉันทำงาน:

sudo sendmailconfig

และฉันอยู่ในธุรกิจ :)


3
ไม่ว่าฉันจะใช้การแก้ไขของคุณหรือไม่เมื่อฉันเรียกใช้บริการ sendmail รีสตาร์ทฉันได้รับ fileclass: ไม่สามารถเปิด 'ATURE (authinfo,': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
Tom Haws

4
เป็น "FEATURE" ไม่ใช่ "ATURE" ตรวจสอบสำเนา / วางของคุณ
jyavenard

คุณต้องวางในตำแหน่งที่แตกต่างกันใน sendmail.cf (ที่ฉันใส่มันเป็นเพียงแค่ข้างต้นจดหมาย แต่ฉันยังคงได้รับจดหมายไม่ได้)
Toskan

14

รวมคำตอบสองข้อข้างต้นในที่สุดฉันก็ใช้งานได้ เพียงแค่ระวังว่าเครื่องหมายคำพูดแรกสำหรับแต่ละสตริงคือ backtick (`)ในไฟล์ sendmail.mc

#Change to your mail config directory:
cd /etc/mail

#Make a auth subdirectory
mkdir auth
chmod 700 auth  #maybe not, because I cannot apply cmd "cd auth" if I do so.

#Create a file with your auth information to the smtp server
cd auth
touch client-info

#In the file, put the following, matching up to your smtp server:
AuthInfo:your.isp.net "U:root" "I:user" "P:password"

#Generate the Authentication database, make both files readable only by root
makemap hash client-info < client-info
chmod 600 client-info
cd ..

#Add the following lines to sendmail.mc. Make sure you update your smtp server
#The first single quote for each string should be changed to a backtick (`) like this:
define(`SMART_HOST',`your.isp.net')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl

#run 
sudo sendmailconfig

ฉันยังคงมีปัญหาในการเข้าใจบรรทัด AuthInfo ... คุณช่วยยกตัวอย่างหนึ่ง ...
Atul Dravid - White Pvt. Ltd. จำกัด

ตัวอย่างข้อมูลลูกค้าของฉันมีเพียงหนึ่งบรรทัดAuthInfo:smtp.gmail.com "U:username" "P:password"
flyrain

ยังคงอยู่กับการตั้งค่าทั้งหมดและ AuthInfo ฉันตกอยู่ในรายการสแปมโดยใช้ smtp.gmail.com ด้วยบัญชีที่มีอยู่จาก google.admin AuthInfo: smtp.gmail.com "U: root" "I: name@domain.com" "P: รหัสผ่าน "ได้ลอง AuthInfo: smtp-relay.gmail.com" U: root "" ฉัน: name@domain.com "" P: รหัสผ่าน "
xoxn

เพื่อชี้แจง:AuthInfo: smtp.gmail.com "U:yourusername@gmail.com" "P:yourpassword"
Mendes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.