คอนฟิกให้ RasPBX ส่งเมล์ด้วย Gmail Account

Running Debian, Asterisk and FreePBX on the Raspberry Pi

คอนฟิกให้ RasPBX ส่งเมล์ด้วย Gmail Account

โพสต์โดย nuiz » 19 ก.ย. 2015 18:42

RasPBX จำเป็นต้องส่ง email อยู่ 2 สถานการณ์ ณ ตอนนี้ครับ อย่างแรกคือเมื่อใช้งาน voicemail to email และอย่างที่สองคือ fax to email ครับ บทความนี้ผมจะแนะนำวิธีการคอนฟิก RasPBX ให้ส่งเมล์ผ่าน Gmail โดยผมจะให้มันทำงานเป็น Client ของ Gmail ครับ ส่งเมล์ด้วย Gmail Username/Password ที่ผมได้สมัครไว้

** Email ไม่ควรมี . เช่น email.1@gmail.com อย่างนี้เป็นต้น **

บน RasPBX มีโปรแกรมรับส่งเมล์ (SMTP) ที่เอามาคอนฟิกใช้งานได้เลยก็คือ Exim4 ครับ หน้าที่เราคือแก้ไขไฟล์คอนฟิกของ Exim4 ให้เชื่อมต่อกับ Gmail ได้ ส่วนตอนส่งเมล์จะเป็นหน้าที่ของ Hylafax ครับ สั่งงานผ่านสคริปต์ของมัน

** สำคัญมากสำหรับท่านที่จะใช้ Free Email ไม่ว่าจะเป็น Gmail, Hotmail ก็ตาม ให้หมั่นเข้าหน้าเว็บลองล๊อกอินดูครับ เพราะบางทีมันบังคับให้เราต้องกดยอมรับอะไรสักอย่าง รวมทั้งให้ใส่เบอร์มือถือเพื่อรับรหัสทาง SMS เพื่อมากรอกในหน้าเว็บของเขาด้วย ถ้าไม่ผ่านขั้นตอนนี้ก็จะเข้าเช็คเมล์ไม่ได้ นั่นหมายความว่า RasPBX ก็จะส่งเมล์ไม่ได้เช่นเดียวกันครับ **

เอาหล่ะครับ เราได้รู้เบสิคการทำงานเบื้องต้นแล้ว ลำดับต่อไปก็มาคอนฟิก Exim4 กันครับ

1. คอนฟิก Exim4
เปิดไฟล์ /etc/exim4/update-exim4.conf.conf

โค้ด: เลือกทั้งหมด
nano /etc/exim4/update-exim4.conf.conf


แก้ไขข้อมูลประมาณนี้

dc_eximconfig_configtype='smarthost'
dc_other_hostnames='efax.com' <- ใส่ชื่อโดเมนของเรา หรือใส่ค่าอะไรก็ได้ เช่น myfax, efax เป็นต้น
dc_local_interfaces='127.0.0.1' <- ให้รันแค่ไอพี 127.0.0.1 ครับเพื่อให้ให้ภายนอกส่งเมล์เข้ามาได้ ป้องกันแสปมในกรณีเราต่ออินเตอร์เน็ตโดยตรง
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587' <- ใส่ตามนี้เลย สังเกตุว่ามีเครื่องหมาย : สองครั้ง
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

2. ใส่ Gmail Username/Password
สมมติว่า Username=USER และ Password=PASS ครับ
เปิดไฟล์ /etc/exim4/passwd.client

โค้ด: เลือกทั้งหมด
nano /etc/exim4/passwd.client


เพิ่มบรรทัดนี้ แล้วบันทึกไฟล์
โค้ด: เลือกทั้งหมด
*.google.com:USER@gmail.com:PASS


ข้อความ *.google.com หมายถึงให้รองรับทุกๆโฮสต์ของ gmail ครับ ซึ่งมันมีหลายชื่อมากแต่ก็ลงท้ายด้วย google.com เสมอ

แล้วเซ็ต Permission ของไฟล์ครับ
โค้ด: เลือกทั้งหมด
chown root:Debian-exim /etc/exim4/passwd.client
chmod 640 /etc/exim4/passwd.client


3. ในไฟล์ /etc/email-addresses
ใส่ข้อมูล 2 บรรทัดนี้
โค้ด: เลือกทั้งหมด
root: USER@gmail.com
asterisk: USER@gmail.com


4. เพิ่มหรือแก้ไขข้อมูลในไฟล์ /etc/mailname
โค้ด: เลือกทั้งหมด
gmail.com


5. สั่งอัพเดทคอนฟิก Exim4
คำสั่ง
โค้ด: เลือกทั้งหมด
update-exim4.conf

เป็นคำสั่งอยู่ในโฟลเดอร์ /usr/sbin ครับ เมื่อสั่งแล้วจะไรท์คอนฟิกลงในไฟล์ /var/lib/exim4/config.autogenerated อีกที ซึ่ง Exim4 จะเอาคอนฟิกในไฟล์นี้ไปใช้งานครับ ดังนั้นหากเราแก้ไขคอนฟิกในไฟล์ /etc/exim4/update-exim4.conf.conf แต่ลืมรันคำสั่งดังกล่าวก็จะยังไม่มีผลครับ และในไฟล์ /var/lib/exim4/config.autogenerated ยังมีพารามิเตอร์ดีฟอลท์ที่ไม่ได้ตั้งค่าไว้ในไฟล์ /etc/exim4/update-exim4.conf.conf ครับ ซึ่งพารามิเตอร์ทั้งหมดนี้มาจากไฟล์ /etc/exim4/exim4.conf.template ครับ

6. รีสตาร์ท Exim4
โค้ด: เลือกทั้งหมด
service exim4 restart


7. ดู Log file
โปรแกรม Exim4 เก็บ Log ไว้ในไฟล์ /var/log/exim4/mainlog ถ้าติดปัญหาอะไรก็มาเช็คที่ไฟล์นี้ได้เลยครับ บอกข้อมูลค่อนข้างละเอียด ตัวอย่างข้อความที่ RasPBX คุยกับ Gmail เป็นระยะๆครับ นี่คือข้อความที่เวอร์ค
โค้ด: เลือกทั้งหมด
2015-09-27 21:26:21 1ZgCuD-0002wq-Dh <= USER@gmail.com U=asterisk P=local S=1092
2015-09-27 21:26:25 1ZgCuD-0002wq-Dh => asterisk@gmail.com R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [74.125.130.109] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" A=plain C="250 2.0.0 OK 1443363985 kw10sm14110208pbc.25 - gsmtp"
2015-09-27 21:26:25 1ZgCuD-0002wq-Dh Completed


8. ส่งเมล์ทดสอบ
รันคำสั่งนี้เพื่อทดสอบส่งเมล์ครับ ผมจะส่งเมล์ไปหา iamaladin@gmail.com ก็รันคำสั่งแบบนี้
โค้ด: เลือกทั้งหมด
send_test_email iamaladin@gmail.com


9. เช็คอีเมล์
มีอีเมล์หน้าตาแบบนี้ส่งเข้า email ของผมครับ แสดงว่าเวอร์คแล้ว
รูปภาพ

บทความที่เกี่ยวข้อง
แนะนำ Raspberry PI เครื่องเล็กๆแต่ความสามารถไม่เล็ก
เทคนิคการติดตั้ง Asterisk + FreePBX บนเครื่อง Raspberry Pi
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7069
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: คอนฟิกให้ RasPBX ส่งเมล์ด้วย Gmail Account

โพสต์โดย sitt01 » 19 มี.ค. 2019 08:41

วันนี้ อยู่ๆ ก็ส่งfax to email ไม่ได้ mail เช็ค log มีข้อความ
plain authenticator failed H=gmail-smtp-msa.l.google.com [74.125.24.108] 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials l79sm24837372pfb.102 - gsmtp

*** username กับ password ถูกต้องครับ อ่านในเน็ตดูเหมือนว่า ทาง gmail จะ บล็อค smtp ที่ไม่รู้จัก

วิธีการแก้ ไปที่ https://myaccount.google.com/security แล้วเลื่อนไป เห็น Allow less secure apps (ภาษาไทย : การเข้าถึงของแอปที่มีความปลอดภัยน้อย
บัญชีของคุณมีความเสี่ยงเนื่องจากคุณอนุญาตให้แอปและอุปกรณ์ที่ใช้เทคโนโลยีการลงชื่อเข้าใช้ที่มีความปลอดภัยน้อยเข้าถึงบัญชี) แล้ว กด เปิด ก็สามารถใช้งานได้ปรกติ


Google now doesn't accept login from less secure apps. So you need to go to https://myaccount.google.com/security scroll to the bottom and turn ON "Allow less secure apps: ON". Now when you add the SMTP details to "Send as" google will accept them. You need to do this for the email ID you are adding in your Send as section.
ข้อดีของการเป็นคนทำคอมพิวเตอร์ คือ ทำยังไงคอมพิวเตอร์ก็จะไม่เจ๊ง ถ้าไม่ไปยุ่งกับ Hardware อย่างมากก็แค่เสียเวลาลง โปรแกรมใหม่ แต่อย่างว่ายิ่งลงบ่อยเท่าไรก็ยิ่งขำนาญเท่านี้น
sitt01
Gold Member
 
โพสต์: 319
ลงทะเบียนเมื่อ: 17 ม.ค. 2011 14:19

Re: คอนฟิกให้ RasPBX ส่งเมล์ด้วย Gmail Account

โพสต์โดย aruntawat » 05 เม.ย. 2020 23:43

เพิ่มเตืมเพื่อบันทึกไว้อ่านครับ
ที่คุณหนุ่ยบอกว่า
2. ใส่ Gmail Username/Password
สมมติว่า Username=USER และ Password=PASS ครับ
เปิดไฟล์ /etc/exim4/passwd.client

nano /etc/exim4/passwd.client

เพิ่มบรรทัดนี้ แล้วบันทึกไฟล์

*.google.com:USER@gmail.com:PASS

ตอนที่ผมคอนฟิก 4/4/2020 ผมต้องกำหนดค่าเพิ่มเติมต่อจากคุณหนุ่ยถึงจะสามารถส่งเทสเมลล์ออกได้ คือเพิ่ม smtp เข้าไปครับ

nano /etc/exim4/passwd.client

เพิ่มบรรทัดนี้ แล้วบันทึกไฟล์

*.google.com:USER@gmail.com:PASS
smtp.gmail.com:USER@gmail.com:PASS
aruntawat
Bronz Member
 
โพสต์: 11
ลงทะเบียนเมื่อ: 11 พ.ย. 2011 08:14


ย้อนกลับไปยัง RasPBX - Asterisk for Raspberry Pi

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 2 ท่าน

cron