ส่งออกการแปล
ไปยังการนำทาง
ไปยังการค้นหา
การตั้งค่า
กลุ่ม
Universal Acceptance Implementation
Universal Acceptance Steering Group
การศึกษาเรื่อง EAI
คู่มือการพัฒนา EAI Mail Server บน CentOS 7
คู่มือการพัฒนา EAI Mail Server บน CentOS 8
คู่มือการพัฒนาซอฟต์แวร์บนเว็บบราวซ์เซอร์ให้รองรับ UA ด้วยภาษา PHP
รู้จัก.ไทย
หน้าหลัก (old)
ภาษา
aa - Qafár af
ab - Аҧсшәа
abs - bahasa ambon
ace - Acèh
ady - адыгабзэ
ady-cyrl - адыгабзэ
aeb - تونسي/Tûnsî
aeb-arab - تونسي
aeb-latn - Tûnsî
af - Afrikaans
ak - Akan
aln - Gegë
am - አማርኛ
an - aragonés
ang - Ænglisc
anp - अङ्गिका
ar - العربية
arc - ܐܪܡܝܐ
arn - mapudungun
arq - جازايرية
ary - Maġribi
arz - مصرى
as - অসমীয়া
ase - American sign language
ast - asturianu
atj - Atikamekw
av - авар
avk - Kotava
awa - अवधी
ay - Aymar aru
az - azərbaycanca
azb - تۆرکجه
ba - башҡортса
ban - Bali
bar - Boarisch
bbc - Batak Toba
bbc-latn - Batak Toba
bcc - جهلسری بلوچی
bcl - Bikol Central
be - беларуская
be-tarask - беларуская (тарашкевіца)
bg - български
bgn - روچ کپتین بلوچی
bh - भोजपुरी
bho - भोजपुरी
bi - Bislama
bjn - Banjar
bm - bamanankan
bn - বাংলা
bo - བོད་ཡིག
bpy - বিষ্ণুপ্রিয়া মণিপুরী
bqi - بختیاری
br - brezhoneg
brh - Bráhuí
bs - bosanski
btm - Batak Mandailing
bto - Iriga Bicolano
bug - ᨅᨔ ᨕᨘᨁᨗ
bxr - буряад
ca - català
cbk-zam - Chavacano de Zamboanga
cdo - Mìng-dĕ̤ng-ngṳ̄
ce - нохчийн
ceb - Cebuano
ch - Chamoru
cho - Choctaw
chr - ᏣᎳᎩ
chy - Tsetsêhestâhese
ckb - کوردی
co - corsu
cps - Capiceño
cr - Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ
crh - qırımtatarca
crh-cyrl - къырымтатарджа (Кирилл)
crh-latn - qırımtatarca (Latin)
cs - čeština
csb - kaszëbsczi
cu - словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ
cv - Чӑвашла
cy - Cymraeg
da - dansk
de - Deutsch
de-at - Österreichisches Deutsch
de-ch - Schweizer Hochdeutsch
de-formal - Deutsch (Sie-Form)
din - Thuɔŋjäŋ
diq - Zazaki
dsb - dolnoserbski
dtp - Dusun Bundu-liwan
dty - डोटेली
dv - ދިވެހިބަސް
dz - ཇོང་ཁ
ee - eʋegbe
egl - Emiliàn
el - Ελληνικά
eml - emiliàn e rumagnòl
en - English
en-ca - Canadian English
en-gb - British English
eo - Esperanto
es - español
es-419 - español de América Latina
es-formal - español (formal)
et - eesti
eu - euskara
ext - estremeñu
fa - فارسی
ff - Fulfulde
fi - suomi
fit - meänkieli
fj - Na Vosa Vakaviti
fo - føroyskt
fr - français
frc - français cadien
frp - arpetan
frr - Nordfriisk
fur - furlan
fy - Frysk
ga - Gaeilge
gag - Gagauz
gan - 贛語
gan-hans - 赣语(简体)
gan-hant - 贛語(繁體)
gcr - kriyòl gwiyannen
gd - Gàidhlig
gl - galego
glk - گیلکی
gn - Avañe'ẽ
gom - गोंयची कोंकणी / Gõychi Konknni
gom-deva - गोंयची कोंकणी
gom-latn - Gõychi Konknni
gor - Bahasa Hulontalo
got - 𐌲𐌿𐍄𐌹𐍃𐌺
grc - Ἀρχαία ἑλληνικὴ
gsw - Alemannisch
gu - ગુજરાતી
gv - Gaelg
ha - Hausa
hak - 客家語/Hak-kâ-ngî
haw - Hawaiʻi
he - עברית
hi - हिन्दी
hif - Fiji Hindi
hif-latn - Fiji Hindi
hil - Ilonggo
ho - Hiri Motu
hr - hrvatski
hrx - Hunsrik
hsb - hornjoserbsce
ht - Kreyòl ayisyen
hu - magyar
hu-formal - magyar (formal)
hy - հայերեն
hyw - Արեւմտահայերէն
hz - Otsiherero
ia - interlingua
id - Bahasa Indonesia
ie - Interlingue
ig - Igbo
ii - ꆇꉙ
ik - Iñupiak
ike-cans - ᐃᓄᒃᑎᑐᑦ
ike-latn - inuktitut
ilo - Ilokano
inh - ГӀалгӀай
io - Ido
is - íslenska
it - italiano
iu - ᐃᓄᒃᑎᑐᑦ/inuktitut
ja - 日本語
jam - Patois
jbo - la .lojban.
jut - jysk
jv - Jawa
ka - ქართული
kaa - Qaraqalpaqsha
kab - Taqbaylit
kbd - Адыгэбзэ
kbd-cyrl - Адыгэбзэ
kbp - Kabɩyɛ
kg - Kongo
khw - کھوار
ki - Gĩkũyũ
kiu - Kırmancki
kj - Kwanyama
kjp - ဖၠုံလိက်
kk - қазақша
kk-arab - قازاقشا (تٴوتە)
kk-cn - قازاقشا (جۇنگو)
kk-cyrl - қазақша (кирил)
kk-kz - қазақша (Қазақстан)
kk-latn - qazaqşa (latın)
kk-tr - qazaqşa (Türkïya)
kl - kalaallisut
km - ភាសាខ្មែរ
kn - ಕನ್ನಡ
ko - 한국어
ko-kp - 조선말
koi - Перем Коми
kr - Kanuri
krc - къарачай-малкъар
kri - Krio
krj - Kinaray-a
krl - karjal
ks - कॉशुर / کٲشُر
ks-arab - کٲشُر
ks-deva - कॉशुर
ksh - Ripoarisch
ku - kurdî
ku-arab - كوردي (عەرەبی)
ku-latn - kurdî (latînî)
kum - къумукъ
kv - коми
kw - kernowek
ky - Кыргызча
la - Latina
lad - Ladino
lb - Lëtzebuergesch
lbe - лакку
lez - лезги
lfn - Lingua Franca Nova
lg - Luganda
li - Limburgs
lij - Ligure
liv - Līvõ kēļ
lki - لەکی
lmo - lumbaart
ln - lingála
lo - ລາວ
loz - Silozi
lrc - لۊری شومالی
lt - lietuvių
ltg - latgaļu
lus - Mizo ţawng
luz - لئری دوٙمینی
lv - latviešu
lzh - 文言
lzz - Lazuri
mai - मैथिली
map-bms - Basa Banyumasan
mdf - мокшень
mg - Malagasy
mh - Ebon
mhr - олык марий
mi - Māori
min - Minangkabau
mk - македонски
ml - മലയാളം
mn - монгол
mni - ꯃꯤꯇꯩ ꯂꯣꯟ
mnw - ဘာသာ မန်
mo - молдовеняскэ
mr - मराठी
mrj - кырык мары
ms - Bahasa Melayu
mt - Malti
mus - Mvskoke
mwl - Mirandés
my - မြန်မာဘာသာ
myv - эрзянь
mzn - مازِرونی
na - Dorerin Naoero
nah - Nāhuatl
nan - Bân-lâm-gú
nap - Napulitano
nb - norsk bokmål
nds - Plattdüütsch
nds-nl - Nedersaksies
ne - नेपाली
new - नेपाल भाषा
ng - Oshiwambo
niu - Niuē
nl - Nederlands
nl-informal - Nederlands (informeel)
nn - norsk nynorsk
no - norsk
nov - Novial
nqo - ߒߞߏ
nrm - Nouormand
nso - Sesotho sa Leboa
nv - Diné bizaad
ny - Chi-Chewa
nys - Nyunga
oc - occitan
olo - Livvinkarjala
om - Oromoo
or - ଓଡ଼ିଆ
os - Ирон
pa - ਪੰਜਾਬੀ
pag - Pangasinan
pam - Kapampangan
pap - Papiamentu
pcd - Picard
pdc - Deitsch
pdt - Plautdietsch
pfl - Pälzisch
pi - पालि
pih - Norfuk / Pitkern
pl - polski
pms - Piemontèis
pnb - پنجابی
pnt - Ποντιακά
prg - Prūsiskan
ps - پښتو
pt - português
pt-br - português do Brasil
qu - Runa Simi
qug - Runa shimi
rgn - Rumagnôl
rif - Tarifit
rm - rumantsch
rmy - romani čhib
rn - Kirundi
ro - română
roa-tara - tarandíne
ru - русский
rue - русиньскый
rup - armãneashti
ruq - Vlăheşte
ruq-cyrl - Влахесте
ruq-latn - Vlăheşte
rw - Kinyarwanda
sa - संस्कृतम्
sah - саха тыла
sat - ᱥᱟᱱᱛᱟᱲᱤ
sc - sardu
scn - sicilianu
sco - Scots
sd - سنڌي
sdc - Sassaresu
sdh - کوردی خوارگ
se - davvisámegiella
sei - Cmique Itom
ses - Koyraboro Senni
sg - Sängö
sgs - žemaitėška
sh - srpskohrvatski / српскохрватски
shi - Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ
shi-latn - Tašlḥiyt
shi-tfng - ⵜⴰⵛⵍⵃⵉⵜ
shn - ၽႃႇသႃႇတႆး
shy-latn - tachawit
si - සිංහල
simple - Simple English
sk - slovenčina
skr - سرائیکی
skr-arab - سرائیکی
sl - slovenščina
sli - Schläsch
sm - Gagana Samoa
sma - Åarjelsaemien
sn - chiShona
so - Soomaaliga
sq - shqip
sr - српски / srpski
sr-ec - српски (ћирилица)
sr-el - srpski (latinica)
srn - Sranantongo
ss - SiSwati
st - Sesotho
stq - Seeltersk
sty - cебертатар
su - Sunda
sv - svenska
sw - Kiswahili
szl - ślůnski
ta - தமிழ்
tay - Tayal
tcy - ತುಳು
te - తెలుగు
tet - tetun
tg - тоҷикӣ
tg-cyrl - тоҷикӣ
tg-latn - tojikī
th - ไทย
ti - ትግርኛ
tk - Türkmençe
tl - Tagalog
tly - толышә зывон
tn - Setswana
to - lea faka-Tonga
tpi - Tok Pisin
tr - Türkçe
tru - Ṫuroyo
ts - Xitsonga
tt - татарча/tatarça
tt-cyrl - татарча
tt-latn - tatarça
tum - chiTumbuka
tw - Twi
ty - reo tahiti
tyv - тыва дыл
tzm - ⵜⴰⵎⴰⵣⵉⵖⵜ
udm - удмурт
ug - ئۇيغۇرچە / Uyghurche
ug-arab - ئۇيغۇرچە
ug-latn - Uyghurche
uk - українська
ur - اردو
uz - oʻzbekcha/ўзбекча
uz-cyrl - ўзбекча
uz-latn - oʻzbekcha
ve - Tshivenda
vec - vèneto
vep - vepsän kel’
vi - Tiếng Việt
vls - West-Vlams
vmf - Mainfränkisch
vo - Volapük
vot - Vaďďa
vro - Võro
wa - walon
war - Winaray
wo - Wolof
wuu - 吴语
xal - хальмг
xh - isiXhosa
xmf - მარგალური
xsy - saisiyat
yi - ייִדיש
yo - Yorùbá
yue - 粵語
za - Vahcuengh
zea - Zeêuws
zgh - ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ
zh - 中文
zh-cn - 中文(中国大陆)
zh-hans - 中文(简体)
zh-hant - 中文(繁體)
zh-hk - 中文(香港)
zh-mo - 中文(澳門)
zh-my - 中文(马来西亚)
zh-sg - 中文(新加坡)
zh-tw - 中文(台灣)
zu - isiZulu
info - Message documentation
รูปแบบ
ส่งออกสำหรับการแปลแบบออฟไลน์
ส่งออกในรูปแบบดั้งเดิม
ดึงข้อมูล
<languages/> <div lang="th" dir="ltr" class="mw-content-ltr"> = EAI Email Server = </div> <div lang="th" dir="ltr" class="mw-content-ltr"> คู่มือนี้ได้จัดทำขึ้นมาเพื่อทดสอบและเป็นแนวทางการติดตั้ง Email Server ให้สามารถรับส่ง email address ภาษาไทย หรือ Email Address Internationalization (EAI) โดยใช้ Opensource Software เพื่อหาวิธีการที่สามารถใช้งานได้ และสามารถนำไปพัฒนาต่อยอดได้ </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == Software ที่นำมาทดสอบ == # CentOS8 for Virtualbox [[https://1drv.ms/u/s!AkENbjQNPN9dy8AAKqY20RgAWj7sxw?e=TZPQxS CentOS for VirtualBox]] #* user: root #* pass: rooteai # VirtualBox [[https://download.virtualbox.org/virtualbox/6.1.18/VirtualBox-6.1.18-142142-Win.exe Win]] [[https://download.virtualbox.org/virtualbox/6.1.18/VirtualBox-6.1.18-142142-OSX.dmg Mac]] # VirtualBox Extension Pack [[https://download.virtualbox.org/virtualbox/6.1.18/Oracle_VM_VirtualBox_Extension_Pack-6.1.18.vbox-extpack ดาวน์โหลด]] # Filezilla [[https://dl4.cdn.filezilla-project.org/client/FileZilla_3.52.2_win64-setup.exe?h=nRlrhWw7NLjal-h8S-C__A&x=1615717392 Win]] [[https://dl4.cdn.filezilla-project.org/client/FileZilla_3.52.2_macosx-x86.app.tar.bz2?h=jSIej0fAkYK7rWgFBbsUPA&x=1615717392 Mac]] # putty [[https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.74-installer.msi Win]] (เฉพาะเครื่อง windows) # Postfix 3.x [[http://www.postfix.org/download.html ดาวน์โหลด]] # Dovecot 2.x [[https://www.dovecot.org/download ดาวน์โหลด]] # MariaDB 10.x [[https://downloads.mariadb.org/ ดาวน์โหลด]] # Roundcube 1.4.x [[https://roundcube.net/download/ ดาวน์โหลด]] [[https://github.com/roundcube/roundcubemail/releases/download/1.4.11/roundcubemail-1.4.11-complete.tar.gz tar]] </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ข้อ 1, 2, 3, 4, 5 แนะนำให้ติดตั้งเตรียมไว้ก่อนอบรม </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == ขั้นตอนการติดตั้ง CentOS8 for Virtualbox == # ดาวน์โหลดและติดตั้ง VirtualBox และ VirtualBox Extension Pack # ดาวน์โหลดไฟล์ CentOS8 for Virtualbox (centos-eai-wokshop.ova) ที่จัดเตรียมไว้ให้ตามลิงค์ด้านบน # ดับเบิ้ลคลิ๊กที่ไฟล์ centos-eai-wokshop.ova เพื่อ import เข้าโปรแกรม Virtualbox [https://kon.in.th/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4/1.png] # หลังจาก import เสร็จเรียบร้อยแล้ว ที่โปรแกรม VirtualBox ให้ดับเบิ้ลคลิ๊กที่ centos-eai-wokshop ด้านซ้ายมือ เพื่อเปิด server # ถ้าพบข้อผิดพลาด "ไม่สามารถเริ่มการทำงานเครื่อง centos-eai-workshop เนื่องจากไม่พบแผงวงจรเครือข่าย" ให้กด "เปลี่ยนการติดตั้งเครือข่าย" จะขึ้นหน้าเปลี่ยนเครือข่าย ให้กด "ตกลง" [https://kon.in.th/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4/2.png] # เมื่อเปิดเครื่องได้แล้ว ให้ login ด้วย user, pass ที่เตรียมไว้ให้ข้างต้น และใช้คำสั่ง "ifconfig" เพื่อตรวจสอบ IP ของเครื่อง [https://kon.in.th/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4/3.png] # ให้จด IP นี้ไว้ใช้สำหรับ ssh เข้าเครื่อง Server ของเราในการทำงาน workshop (*แต่ละเครื่องจะได้ IP แตกต่างกัน) (สำหรับเครื่อง mac ต้อง allow ให้ virtualbox ทำงานได้ตามนี้ [https://kon.in.th/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4/4.png]) </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * หมายเหตุ : คู่มือนี้ไม่ได้อธิบายถึงการติดตั้ง Centos 8 : Postfix ต้องเป็น Version 3.x.x ขึ้นไป จะรองรับ EAI : หากจะนำไปใช้งานจริงจะต้องจดทะเบียนโดเมน และมี dns server ด้วย </div> <div lang="th" dir="ltr" class="mw-content-ltr"> = การติดตั้ง EAI Email Server = </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 1. ตั้งค่า hostname == </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 1. อัพเดตแพคเกจของ mail serverให้เป็นเวอร์ชั่นล่าสุด ด้วยคำสั่ง '''# yum -y update''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 2. กำหนดชื่อ hostname ในตัวอย่างนี้กำหนดชื่อว่า mail.eai.in.th ด้วยคำสั่ง '''# hostnamectl set-hostname ''[[mail.eai.in.th]]''''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 3. เพิ่มค่า hostname ชื่อเดียวกับชื่อที่กำหนดข้างต้นในไฟล์ hosts '''# vi /etc/hosts''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''ตัวอย่างไฟล์ hosts'' 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 '''''[[mail.eai.in.th]]''''' ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 '''''[[mail.eai.in.th]]''''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''*ระวัง envelopment ของทาง partner ว่าติดตั้ง centos ในรูปแบบใดมาให้ (อาจจะต้องติดตั้ง service เพิ่ม หากติดตั้งมาแบบ minimal เช่นใช้คำสั่ง vi ไม่ได้)'' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 4. ติดตั้ง wget เพื่อใช้ดาวน์โหลดซอฟแวร์ที่จำเป็นต้องใช้งานเพิ่ม '''# yum -y install wget''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 5. ติดตั้ง telnet เพื่อทดสอบการทำงานของ email server '''# yum -y install telnet''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 2. ตั้งค่า firewall == 1. ตรวจสอบสถานะ firewalld service บน mail server *ต้องมีสถานะ active (running) </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''# systemctl status firewalld''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''ตัวอย่าง'' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''Active: <span style='color:red'>active (running)</span> since Mon 2019-11-18 14:12:03 +07; 1h 13min ago''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 2. ตรวจสอบ firewall zone และ network interface ที่เปิดอยู่ '''# firewall-cmd --get-active-zones''' ''ตัวอย่าง'' '''public '''interfaces: ens32 </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 3. ตรวจสอบรายการ services ของ firewall ที่เปิดอยู่ที่ zone public '''# firewall-cmd --zone=public --list-services''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''ตัวอย่าง'' ''' cockpit dhcpv6-client ssh ''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 4. เปิด firewall services ที่ zone public ของ mail server (สามารถเปิดเท่าต้องการได้) '''# firewall-cmd --permanent --zone=public --add-service={http,https,mysql,smtp,smtps,imap,imaps} '''# firewall-cmd --reload </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 5. ตรวจสอบรายการ services ของ firewall ที่เปิดอยู่ที่ zone public อีกครั้ง จะพบ services เปิดเพิ่มขึ้นมา </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''*ref: configure firewall services for mail server (https://spalinux.com/2015/06/centos-7-basic-configure-firewall-by-firewall-cmd)'' '''# firewall-cmd --zone=public --list-services''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''ตัวอย่าง'' ''' cockpit dhcpv6-client <span style='color:red'>http https imap imaps mysql smtp smtps</span> ssh ''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 6. ในตัวอย่างนี้เราแนะนำให้ปิดการทำงานของ SELinux เพื่อความสะดวกในการตั้งค่า (ไม่แนะนำให้ทำกับเครื่อง production) *เปลี่ยน SELinux=enforcing เป็น SELinux=disabled '''# vi /etc/selinux/config''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''ตัวอย่าง'' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''# This file controls the state of SELinux on the system. '''# SELINUX= can take one of these three values: '''# enforcing - SELinux security policy is enforced. '''# permissive - SELinux prints warnings instead of enforcing. '''# disabled - No SELinux policy is loaded. '''SELINUX=<span style='color:red'>disabled</span> '''# SELINUXTYPE= can take one of these two values: '''# targeted - Targeted processes are protected, '''# mls - Multi Level Security protection. '''SELINUXTYPE=targeted 7. ตรวจสอบสถานะ SELinux อีกครั้ง * สั่ง restart server และทำการตรวจสอบ '''# reboot''' '''# sestatus''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''ตัวอย่าง'' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> ''' disabled ''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 3. สร้าง SSL Cert == *เป็นขั้นตอนการสร้าง SSL key เตรียมไว้ใช้งานกับ postfix และ dovecot 1. สร้าง private key '''# cd /etc/pki/tls/certs '''# /usr/bin/openssl genrsa -aes128 2048 > '''[[eai.key]]''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '' ตัวอย่าง '' '''Generating RSA private key, 2048 bit long modulus '''... '''... '''e is 65537 (0x10001) '''Enter pass phrase: '''[[#set passphrase]]''' '''Verifying - Enter pass phrase: '''[[#confirm]]''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 2. ถอด Passphase ออกจาก private key ที่สร้างขึ้น '''# /usr/bin/openssl rsa -in '''[[eai.key]]''' -out '''[[eai.key]]''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '' ตัวอย่าง '' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''Enter pass phrase for eai.key: '''[[#input passphrase]]''' '''writing RSA key''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 3. สร้าง csr '''# /usr/bin/openssl req -utf8 -new -key '''[[eai.key]]''' -out '''[[eai.csr]]''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '' ตัวอย่าง '' '''You are about to be asked to enter information that will be incorporated '''into your certificate request. '''What you are about to enter is what is called a Distinguished Name or a DN. '''There are quite a few fields but you can leave some blank '''For some fields there will be a default value, '''If you enter '.', the field will be left blank. '''----- '''Country Name (2 letter code) [XX]:'''[[TH]]''' '''[[#country]]''' '''State or Province Name (full name) []:'''[[Bangkok]]''' '''[[#state]]''' '''Locality Name (eg, city) [Default City]:'''[[Dusit]]''' '''[[#city]]''' '''Organization Name (eg, company) [Default Company Ltd]:'''[[EAI]]''' '''[[#company]]''' '''Organizational Unit Name (eg, section) []:'''[[IT]]''' '''[[#department]]''' '''Common Name (eg, your name or your server's hostname) []:'''[[mail.eai.in.th]]''' '''[[#server's FQDN]]''' '''Email Address []:'''[[xxx@eai.in.th]]''' '''[[#email address]]''' '''Please enter the following 'extra' attributes '''to be sent with your certificate request '''A challenge password []: '''[[#Enter]]''' '''An optional company name []: '''[[#Enter]]''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 4. ทำการ generate key '''# /usr/bin/openssl x509 -in '''[[eai.csr]]''' -out '''[[eai.crt]]''' -req -signkey '''[[eai.key]]''' -days 365''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '' ตัวอย่าง '' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''Signature ok '''subject=/C=JP/ST=Hiroshima/L=Hiroshima/O=GTS/OU=Server World/CN=www.srv.world/emailAddress=xxx@eai.in.th '''Getting Private key''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 4. ติดตั้ง mariadb, postfix, dovecot == 1. ติดตั้ง mariadb , Postfix , Dovecot และ Packet ที่จำเป็นกับ Server '''# yum -y install postfix dovecot mariadb-server dovecot-mysql postfix-mysql''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 2. สั่ง start service ของ postfix, dovecot, mariadb ทุกครั้งที่เปิด Server '''# systemctl start postfix && systemctl start dovecot && systemctl start mariadb''' '''# systemctl enable postfix && systemctl enable dovecot && systemctl enable mariadb''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 3. ดูสถานะการทำงานของ postfix, dovecot, maridb '''# systemctl status postfix''' '''# systemctl status dovecot''' '''# systemctl status mariadb''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 5. ตั้งค่า mariadb == 1. ตั้งค่า UTF8 ให้กับ mysql เพื่อให้รองรับภาษาไทย โดยเพิ่มคำสั่งด้าล่างลงใน /etc/my.cnf.d/maridb-server.cnf ใต้ [mysqld] '''# vi /etc/my.cnf.d/mariadb-server.cnf''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> # # These groups are read by MariaDB server. # Use it for options that only the server (but not clients) should see # # See the examples of server my.cnf files in /usr/share/mysql/ # # this is read by the standalone daemon and embedded servers [server] # this is only for the mysqld standalone daemon # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld/mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld] '''''[[character-set-server = utf8]]''''' '''''[[collation-server = utf8_general_ci]]''''' '''''[[skip-character-set-client-handshake]]''''' '''''[[bind-address=127.0.0.1]]''''' datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mariadb/mariadb.log pid-file=/run/mariadb/mariadb.pid # # * Galera-related settings # [galera] # Mandatory settings #wsrep_on=ON #wsrep_provider= #wsrep_cluster_address= #binlog_format=row #default_storage_engine=InnoDB #innodb_autoinc_lock_mode=2 # # Allow server to accept connections on all interfaces. # #bind-address=0.0.0.0 # # Optional setting #wsrep_slave_threads=1 #innodb_flush_log_at_trx_commit=0 # this is only for embedded server [embedded] # This group is only read by MariaDB servers, not by MySQL. # If you use the same .cnf file for MySQL and MariaDB, # you can put MariaDB-only options here [mariadb] # This group is only read by MariaDB-10.3 servers. # If you use the same .cnf file for MariaDB of different versions, # use this group for options that older servers don't understand [mariadb-10.3] </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 2. สั่ง restart mariadb '''# systemctl restart mariadb''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 3. ตั้งค่าความปลอดภัยการเข้างาน mysql โดยจะมีการตั้ง password ของ root user เพื่อ login เข้าใช้งาน (*กำหนดเพียง password ใหม่ และในส่วนอื่นๆให้ enter ผ่านได้เลย) '''# mysql_secure_installation''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 4. Login ข้าใช้งาน mysql โดยใช้ password ของ root user ที่ได้ตั้งไว้ '''# mysql -u root -p''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 5. สร้าง DB เพื่อใช้งานการเก็บข้อมูลของการใช้งาน Email Server '''# CREATE DATABASE ''[[eaimail]]'';''' '''# USE ''[[eaimail]]'';''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 6. สร้าง user พร้อมกำหนดสิทธิ์การใช้งานให้กับ eaimail database ที่สร้างขึ้นมา '''# GRANT SELECT, INSERT, UPDATE, DELETE ON eaimail.* TO ''[['yourdbuser']]''@'localhost' IDENTIFIED BY ''[['yourdbpassword']]''; '''# GRANT SELECT, INSERT, UPDATE, DELETE ON eaimail.* TO ''[['yourdbuser']]''@'localhost.localdomain' IDENTIFIED BY ''[['yourdbpassword']]'';''' '''# FLUSH PRIVILEGES;''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 7. ตรวจสอบ userที่สร้างขึ้นใหม่โดย '''# SHOW GRANTS FOR ''[['yourdbuser']]''@'localhost';''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 8. สร้างตารางใช้เก็บค่า domains, forwardings สำหรับ forward อีเมลภาษาไทยไปภาษาอังกฤษ, users เพื่อใช้สร้าง mailbox '''# CREATE TABLE domains (domain varchar(50) NOT NULL, PRIMARY KEY (domain) );''' '''# CREATE TABLE forwardings (source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) );''' '''# CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) );''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 9. เลือก DB ของ mail server และกำหนด Domain ภาษาอังกฤษ และภาษาไทย และ Email-Account ภาษาอังกฤษ) พร้อม password เพื่อเริ่มใช้งาน '''# INSERT INTO domains (domain) VALUES ([['eai.in.th']]);''' '''# INSERT INTO domains (domain) VALUES ([['อีเอไอ.ไทย']]);''' '''# INSERT INTO users (email, password) VALUES ([['thai@eai.in.th']], ENCRYPT([['thaiuserpassword']]));''' '''# INSERT INTO users (email, password) VALUES ([['ไทย@อีเอไอ.ไทย']], ENCRYPT([['thaiuserpassword']]));''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 10. กำหนด Email ที่เข้ามายัง Email Account ภาษาไทย ให้ forward เข้า Email-Account ภาษาอังกฤษ เนื่องจากระบบไม่สามารถสร้าง mailbox เป็น ภาษาไทยได้ '''# INSERT INTO forwardings (source,destination) VALUES ([['ไทย@อีเอไอ.ไทย']],[['thai@eai.in.th']]);''' '''# quit''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 6. ตั้งค่า postfix == === สร้างไฟล์เชื่อมต่อระหว่าง postfix และ mariadb === * สร้างไฟล์ script เพื่อใช้สำหรับเรียกค่า domain จาก DB '''# vi /etc/postfix/mysql-virtual_domains.cf''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> user = '''''[[yourdbuser]]''''' password = '''''[[yourdbpassword]]''''' dbname = '''''[[eaimail]]''''' query = SELECT domain AS virtual FROM domains WHERE domain='%s' hosts = 127.0.0.1 </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * สร้างไฟล์ script เพื่อใช้สำหรับ forward email '''# vi /etc/postfix/mysql-virtual_forwardings.cf''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> user = '''''[[yourdbuser]]''''' password = '''''[[yourdbpassword]]''''' dbname = '''''[[eaimail]]''''' query = SELECT destination FROM forwardings WHERE source='%s' hosts = 127.0.0.1 </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * สร้างไฟล์ script เพื่อใช้สำหรับ สร้าง mailbox และใช้ login '''# vi /etc/postfix/mysql-virtual_mailboxes.cf''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> user = '''''[[yourdbuser]] ''''' password = '''''[[yourdbpassword]]''''' dbname = '''''[[eaimail]]''''' query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s' hosts = 127.0.0.1 </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * สร้างไฟล์ script เพื่อใช้สำหรับ ส่งต่อ email ทั้งหมด ไปยัง smtp server อื่น ซึ่งใช้ในกรณีที่ host เป็น IP Address '''# vi /etc/postfix/mysql-virtual_email2email.cf''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> user = '''''[[yourdbuser]] ''''' password = '''''[[yourdbpassword]]''''' dbname = '''''[[eaimail]]''''' query = SELECT email FROM users WHERE email='%s' hosts = 127.0.0.1 </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * กำหนดสิทธิ์ให้กับ script ที่สร้างขึ้น '''# chmod 640 /etc/postfix/mysql-virtual_*.cf && chgrp postfix /etc/postfix/mysql-virtual_*.cf''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === สร้าง user vmail สำหรับอ่าน/เขียน mailbox === * สร้าง group เพื่อใช้กับ mailbox '''# groupadd -g 5000 vmail''' '''# useradd -g vmail -u 5000 vmail -d /home/vmail -m''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === แก้ไขไฟล์ "/etc/postfix/main.cf" === '''# postconf "myhostname=''[[mail.eai.in.th]]'''" '''# postconf "mydomain='''[[eai.in.th]]'''" '''# postconf "myorigin=\$mydomain" '''# postconf "inet_interfaces=all" '''# postconf "inet_protocols=ipv4" '''# postconf "mydestination=localhost, localhost.localdomain" '''# postconf "mynetworks=127.0.0.1" '''# postconf "readme_directory=no" '''# postconf "smtpd_tls_cert_file=/etc/pki/tls/certs/'''[[eai.crt]]'''" '''# postconf "smtpd_tls_key_file=/etc/pki/tls/certs/'''[[eai.key]]'''" '''# postconf "shlib_directory=no" '''# postconf "smtpd_sasl_auth_enable=yes" '''# postconf "smtpd_sasl_type=dovecot" '''# postconf "smtpd_sasl_path=private/auth" '''# postconf "smtpd_sasl_authenticated_header=yes" '''# postconf "broken_sasl_auth_clients=yes" '''# postconf "smtpd_use_tls=yes" '''# postconf "smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination" '''# postconf "smtpd_tls_auth_only=yes" '''# postconf "smtpd_tls_loglevel=1" '''# postconf "virtual_mailbox_base=/home/vmail" '''# postconf "virtual_mailbox_maps=proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf" '''# postconf "virtual_mailbox_domains=proxy:mysql:/etc/postfix/mysql-virtual_domains.cf" '''# postconf "virtual_alias_maps=proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf" '''# postconf "virtual_uid_maps=static:5000" '''# postconf "virtual_gid_maps=static:5000" '''# postconf "virtual_alias_domains='''[[อีเอไอ.ไทย]]'''" '''# postconf "virtual_transport=dovecot" '''# postconf "proxy_read_maps=\$local_recipient_maps \$mydestination \$virtual_alias_maps \$virtual_alias_domains \$virtual_mailbox_maps \$virtual_mailbox_domains \$relay_recipient_maps \$relay_domains \$canonical_maps \$sender_canonical_maps \$recipient_canonical_maps \$relocated_maps \$transport_maps \$mynetworks" '''# postconf "smtputf8_enable=yes" </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ตัวอย่างไฟล์ smtp_tls_security_level = may meta_directory = /etc/postfix shlib_directory = no myhostname = mail.eai.in.th mydomain = eai.in.th myorigin = $mydomain mynetworks = 127.0.0.1 smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_authenticated_header = yes broken_sasl_auth_clients = yes smtpd_use_tls = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_tls_auth_only = yes smtpd_tls_loglevel = 1 virtual_mailbox_base = /home/vmail virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_alias_domains = อีเอไอ.ไทย virtual_transport = dovecot virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf smtputf8_enable = yes proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === แก้ไขไฟล์ "/etc/postfix/master.cf" === '''# postconf -M smtps/inet="smtps inet n - - - - smtpd" '''# postconf -P "smtps/inet/syslog_name=postfix/smtps" '''# postconf -P "smtps/inet/smtpd_tls_wrappermode=yes" '''# postconf -P "smtps/inet/smtpd_sasl_auth_enable=yes" '''# postconf -P "smtps/inet/smtpd_client_restrictions=permit_sasl_authenticated,reject" '''# postconf -P "smtps/inet/smtpd_relay_restrictions=permit_sasl_authenticated,reject" '''# postconf -P "smtps/inet/milter_macro_daemon_name=ORIGINATING" '''# postconf -vM dovecot/unix="dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}" </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ตัวอย่างไฟล์ smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING''' dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * restart postfix '''# systemctl restart postfix''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 7. ตั้งค่า dovecot == === สร้างไฟล์เชื่อมต่อระหว่าง dovecot และ mariadb === * สร้าง script เพื่อให้ dovecot ใช้งานกับ SQL ที่เราได้กำหนดก่อนหน้านี้ '''# vi /etc/dovecot/dovecot-sql.conf.ext''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''driver = mysql''' '''connect = host=127.0.0.1 dbname=''[[eaimail]]'' user=''[[yourdbuser]]'' password=''[[yourdbpassword]]''''' '''default_pass_scheme = CRYPT''' '''password_query = SELECT email as user, password FROM users WHERE email='%u';''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * กำหนดสิทธิ์อนุญาตให้ user ที่อยู่ใน dovecot group ใช้งาน '''# chmod 640 /etc/dovecot/dovecot-sql.conf.ext && chgrp dovecot /etc/dovecot/dovecot-sql.conf.ext </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === แก้ไขไฟล์ "/etc/dovecot/dovecot.conf" === * Backup ค่า config เดิมไว่ก่อน '''# mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf-backup''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ตั้งค่า config dovecot โดยสร้างไฟล์ให้ และใส่คำสั่งตามด้านล่าง '''# vi /etc/dovecot/dovecot.conf''' ''ตัวอย่าง'' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''protocols = imap pop3 lmtp '''log_timestamp = "%Y-%m-%d %H:%M:%S " '''mail_location = maildir:/home/vmail/%d/%n/Maildir '''ssl_cert = </etc/pki/tls/certs/'''[[eai.crt]]''' '''ssl_key = </etc/pki/tls/certs/'''[[eai.key]]''' '''ssl_dh_parameters_length = 2048 '''ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL '''namespace { ''' type = private ''' separator = . ''' prefix = INBOX. ''' inbox = yes '''} '''service auth { ''' unix_listener auth-master { ''' mode = 0600 ''' user = '''[[vmail]]''' ''' } ''' unix_listener /var/spool/postfix/private/auth { ''' mode = 0666 ''' user = '''[[postfix]]''' ''' group = '''[[postfix]]''' ''' } '''user = root '''} '''auth_mechanisms = plain login '''service auth-worker { ''' user = root '''} '''protocol lda { ''' log_path = /home/vmail/dovecot-deliver.log ''' auth_socket_path = /var/run/dovecot/auth-master ''' postmaster_address = postmaster@'''[[eai.in.th]]''' '''} '''protocol pop3 { ''' pop3_uidl_format = %08Xu%08Xv ''' pop3_client_workarounds = outlook-no-nuls oe-ns-eoh '''} '''passdb { ''' driver = sql ''' args = /etc/dovecot/dovecot-sql.conf.ext '''} '''userdb { ''' driver = static ''' args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes '''}''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * สั่ง restart dovecot '''# systemctl restart dovecot''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 8. ทดสอบการทำงานของ EAI Email Server == 1. ทดสอบ imap '''# telnet localhost imap''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 2. ได้ผลตามด้านล่าง และ ใช้คำสั่ง quit เพื่ออแกจาก telnet '''Trying 127.0.0.1...''' '''Connected to localhost.localdomain.''' '''Escape character is '^]'.''' '''+OK Dovecot ready.''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 3. แก้ใขไฟล์ /etc/aliases โดยเพิ่มบรรทัดตามด้านล่าง '''# vi /etc/aliases''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''mailer-daemon: postmaster''' '''postmaster: root''' '''''[[root: postmaster@eai.in.th]]''''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 4 สั่ง update aliases และ restart postfix '''# newaliases''' '''# systemctl restart postfix''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 5. ทดสอบ smtp server '''# telnet localhost 25''' '''# ehlo localhost''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 6. จะได้ผลลัพธ์ตามด้านล่าง '''250-mail.eai.in.th''' '''250-PIPELINING''' '''250-SIZE 30720000''' '''250-VRFY''' '''250-ETRN''' '''250-STARTTLS''' '''250-ENHANCEDSTATUSCODES''' '''250-8BITMIME''' '''250-DSN''' '''250 SMTPUTF8''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 7. ติดตั้ง mailx และทดสอบส่ง email '''# yum install mailx''' '''# mailx thai@eai.in.th ''(ใส่ subject แล้ว enter ตามด้วยเนื้อหา และใช้ Ctrl+D เพื่อส่งออก)''''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 8. ตรวจสอบ log ของการส่ง Email : /var/log/maillog ซึ้งจะได้ผลตามด้านล่าง '''Nov 13 15:19:07 mail postfix/pickup[31954]: E9AB020199E5: uid=0 from=<root>''' '''Nov 13 15:19:07 mail postfix/cleanup[1938]: E9AB020199E5: message-id=<20171113081907.E9AB020199E5@mail.eai.in.th>''' '''Nov 13 15:19:07 mail postfix/qmgr[21141]: E9AB020199E5: from=<root@eai.in.th>, size=434, nrcpt=1 (queue active)''' '''Nov 13 15:19:08 mail postfix/pipe[1946]: E9AB020199E5: to=<tanagan@eai.in.th>, relay=dovecot, delay=0.09, delays=0.04/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)''' '''Nov 13 15:19:08 mail postfix/qmgr[21141]: E9AB020199E5: removed''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 9. ตรวจสอบ log ผลการส่งของ dovecot : /home/vmail/dovecot-deliver.log ซึ่งจะได้ผลตามด้านล่าง '''2017-11-13 15:19:08 lda(tanagan@eai.in.th): Info: msgid=<20171113081907.E9AB020199E5@mail.eai.in.th>: saved mail to INBOX''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 10. ตรวจสอบ mailbox เมื่อมีการรับส่ง-ส่ง Email จะสร้างขึ้นโดย dovecot ซึ่งจะได้ผลตามภาพ '''# cd /home/vmail/eai.in.th/thai/Maildir''' '''# find''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''.''' '''./dovecot-uidlist''' '''./cur''' '''./new''' '''./new/1285609582.P6115Q0M368794.li172-137''' '''./dovecot.index''' '''./dovecot.index.log''' '''./tmp''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 11. ตรวจสอบ mailbox โดยใช้ mail client คือ mutt เพื่อดู email ภายใน mailbox '''# yum install mutt''' '''# mutt -f .''' </div> <div lang="th" dir="ltr" class="mw-content-ltr"> 12. ทดสอบการส่งเมลในรูปแบบ eai '''# telnet localhost 25''' '''# EHLO localhost''' '''# MAIL FROM: ธนากานต์@อีเอไอ.ไทย SMTPUTF8''' '''# RCPT TO: ธนากานต์@คน.ไทย''' '''# data''' '''# Subject: eai test''' '''# เทสอีเมลส์ภาษาไทย''' '''# .''' *ใช้เครื่องหมาย “.” เพื่อจบข้อความและส่งข้อความ *กด Ctrl+] เพื่อออก </div> <div lang="th" dir="ltr" class="mw-content-ltr"> == 9. ติดตั้ง roundcube webmail == </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === ติดตั้ง apache php === </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ติดตั้ง repo ของ php 7.4 เพิ่มเติม และเปิดให้สามารถติดตั้ง php 7.4 ได้ '''# yum -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm '''# yum module reset php && yum module enable php:remi-7.4 -y </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ใช้คำสั่งติดตั้ง php, php library และ apache web server '''# yum -y install httpd php php-common php-devel php-imap php-imagick php-json php-xml php-mbstring php-pear php-pdo php-intl php-ldap php-gd php-zip php-pdo_mysql php-curl php-bz2 php-gmp </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ใช้คำสั่ง start service apache และ php และให้เริ่มทำงานโดยอัติโนมัติทุกครั้งที่เปิดเครื่อง '''# systemctl start httpd && systemctl start php-fpm '''# systemctl enable httpd && systemctl enable php-fpm </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ตรวจสอบสถานะการทำงานของ apache และ '''# systemctl status httpd '''# systemctl status php-fpm </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === ตั้งค่า php === * ตั้งค่า timezone (เราจะตั้งค่าเฉพาะส่วนที่จำเป็นต่อการใช้งาน roundcube) '''# vi /etc/php.ini </div> <div lang="th" dir="ltr" class="mw-content-ltr"> [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Bangkok </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === ตั้งค่า mariadb database === * สร้าง database roundcubemail โดยกำหนด username=rcmail, password=passrc '''# mysql -u root -p </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''# CREATE DATABASE roundcubemail CHARACTER SET utf8 COLLATE utf8_general_ci; '''# GRANT ALL PRIVILEGES ON roundcubemail.* TO rcmail@localhost IDENTIFIED BY 'passrc'; '''# FLUSH PRIVILEGES; </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === ตั้งค่า roundcube === '''# cd /var/www/html/ '''# wget https://github.com/roundcube/roundcubemail/releases/download/1.4.4/roundcubemail-1.4.4-complete.tar.gz '''# tar zvfx /var/www/html/roundcubemail-1.4.4-complete.tar.gz '''# mv /var/www/html/roundcubemail-1.4.4 /var/www/html/roundcubemail '''# cp /var/www/html/roundcubemail/config/config.inc.php.sample /var/www/html/roundcubemail/config/config.inc.php '''# chown -R apache:apache /var/www/html/roundcubemail </div> <div lang="th" dir="ltr" class="mw-content-ltr"> === สร้าง virtualhost === '''# vi /etc/httpd/conf.d/rcmail.conf </div> <div lang="th" dir="ltr" class="mw-content-ltr"> <VirtualHost *:80> ServerName mail.eai.in.th ServerAdmin webmaster@eai.in.th DocumentRoot /var/www/html/roundcubemail <Directory /var/www/html/roundcubemail> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog /var/log/httpd/mail.eai.in.th-error.log CustomLog /var/log/httpd/mail.eai.in.th-access.log combined </VirtualHost> </div> <div lang="th" dir="ltr" class="mw-content-ltr"> '''# systemctl restart httpd </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ทดสอบเข้าเว็บโซต์ '''http://mail.eai.in.th/installer/ </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ตั้งค่าเชื่อมต่อ database </div> <div lang="th" dir="ltr" class="mw-content-ltr"> host = localhost dbname =roundcubemail user = rcmail password = passrc db_prefix = rc_ </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ตั้งค่า IMAP ssl://mail.eai.in.th 993 </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * ตั้งค่า SMTP ssl://mail.eai.in.th 465 </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * user, pass ของ eai email thai@eai.in.th และ ไทย@อีเอไอ.ไทย thaiuserpassword </div> <div lang="th" dir="ltr" class="mw-content-ltr"> * การใช้ ssl แบบ self-sign อาจจะทำให้ roundcube ไม่สามารถเชื่อมต่อ mail server ได้ แก้ปัญหาโดยการ config เพิ่มเติม ดังนี้ '''# vi /var/www/html/roundcubemail/config/defaults.inc.php $config['imap_conn_options'] = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, ), ); $config['smtp_conn_options'] = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, ), ); </div> [[Category: EAI]]
รายการเลือกการนำทาง
เครื่องมือส่วนตัว
ไทย
สร้างบัญชี
เข้าสู่ระบบ
เนมสเปซ
แปล
สิ่งที่แตกต่าง
ดู
สถิติภาษา
สถิติกลุ่มข้อความ
ส่งออก
เพิ่มเติม
ค้นหา
การนำทาง
หน้าหลัก
คำอธิบาย
Universal Acceptance
UA Implementation
รู้จัก.ไทย (knows.in.th)
UASG
เครื่องมือ
หน้าพิเศษ
รุ่นพร้อมพิมพ์