Difference between revisions of "การศึกษาเรื่อง EAI/en"

From Wiki_EAI
Jump to navigation Jump to search
(สร้างหน้าด้วย " More Settings-> Outgoing Server -> Checked - My Outgoing server(SMTP) requires authentication More Settings-> Advance -> POP3 110, SMTP 25 , Use the fo...")
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
  
<div class="mw-translate-fuzzy">
 
 
==Internationalized Email Installation ==
 
==Internationalized Email Installation ==
*[[Base Installation]] -  Supports SMTPUTF8, SMTP Auth (unencrypted & TLS), imap/pop3 (unencrypted &TLS)
 
*[[Upgrade installation 1]] - Configure Postfix to automatically add SMTPUTF8 when sending to EAI Address using Pipe Filter
 
*[[Upgrade installation 2]]- Configure Postfix to modify sender's email address when sending to Non-EAI enabled mail server using Pipe Filter
 
*[[Upgrade installation 3]] - Multiple virtual domain support
 
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
===Base Installation===
=== การติดตั้งขั้นพื้นฐาน ===
+
Supports SMTPUTF8, SMTP Auth (unencrypted & TLS), imap/pop3 (unencrypted &TLS)
รองรับ SMTPUTF8, SMTP Auth (unencrypted & TLS), imap/pop3 (unencrypted &TLS)
+
==== Ubuntu ====
*[[ฉบับย่อ - การติดตั้งแบบรวดเร็ว]] (วิธีนี้ไม่สามารถใช้ได้กับชื่อผู้ใช้ที่เป็น  NON-ASCII , สามารถใช้ alias แทนได้)
+
*[[Short Version - Quick installation]] (This does not work with NON-ASCII username, can use alias instead)
*[[ฉบับเต็ม - อธิบายอย่างละเอียดทีละขั้นตอน]] ('''แนะนำ''')
+
*[[Long version - Step by step with explanations]] ('''Recommended''')
</div>
+
*Sample Config File [ http://tool.ts8.se.in.th/wikieai_en/files/vclass.info_main.cf]
 
 
<div lang="th" dir="ltr" class="mw-content-ltr">
 
*ตัวอย่างไฟล์ตั้งค่า [http://tool.ts8.se.in.th/wikieai_th/files/vclass.info_main.cf]
 
</div>
 
 
 
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
==== Centos ====
 
==== Centos ====
*[[Centos - การติดตั้งขั้นพื้นฐาน]]
+
*[[Centos - base installation]]
*[[Centos - คำถามที่พบบ่อย]]
+
*[[Centos - FAQs]]
</div>
 
 
 
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
==== Freebsd ====
 
==== Freebsd ====
*[[Freesbsd - ฉบับเต็ม - อธิบายอย่างละเอียดทีละขั้นตอน]]
+
*[[Freesbsd - Long version - Step by step with explanations]]
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
===Upgrade installation 1===
===พัฒนาการติดตั้งครั้งที่ 1===
 
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Configure Postfix to automatically add SMTPUTF8 when sending to EAI Address using Pipe Filter
Configure Postfix to automatically add SMTPUTF8 when sending to EAI Address using Pipe Filter
 
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Make sure you have a working Mail server using the base installation
คุณจะต้องมี Mail server ที่ทำการติดตั้งขั้นพื้นฐานไว้แล้ว
 
</div>
 
  
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Install php5-cli, the script is using  PHP
ติดตั้ง php5-cli, script จะใช้ PHP  
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
sudo apt-get install php5-cli
 
sudo apt-get install php5-cli
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
get the script and place it in /etc/postfix
get ไฟล์ script แล้ววางไว้ใน /etc/postfix
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
   cd /etc/postfix
 
   cd /etc/postfix
 
   sudo wget https://raw.githubusercontent.com/padillareyj/eaifilter/master/eai-add-smtputf8.php
 
   sudo wget https://raw.githubusercontent.com/padillareyj/eaifilter/master/eai-add-smtputf8.php
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Update ownership and permission
ปรับปรุง ownership และ permission
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
     cd /etc/postfix
 
     cd /etc/postfix
Line 71: Line 44:
 
     sudo chmod +x eai-add-smtputf8.php
 
     sudo chmod +x eai-add-smtputf8.php
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Update your master.cf, the following will filter all incoming mail coming from port 25 and resend to port 10025(accessible locally only), It will append the SMPTUTF8 in MAIL FROM command is executed. MAIL FROM: <MAIL> SMPTUTF8  
ปรับปรุง master.cf ของคุณ  ซึงจะกรองจดหมายขาเข้าที่มาจากพอร์ต 25 และ ส่งกลับไปยังพอร์ต 10025 (สามารถเข้าถึงจากภายในเท่านั้น) มันจะแนบท้าย SMPTUTF8 ใน MAIL FROM เมื่อคำสั่งถูกดำเนินการ MAIL FROM: <MAIL> SMPTUTF8  
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
smtp      inet  n      -      -      -      -      smtpd -o content_filter=eaifilter -o receive_override_options=no_header_body_checks
 
smtp      inet  n      -      -      -      -      smtpd -o content_filter=eaifilter -o receive_override_options=no_header_body_checks
Line 90: Line 61:
 
         -o in_flow_delay=0
 
         -o in_flow_delay=0
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Update main.cf
ปรับปรุง main.cf
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
content_filter =eaifilter:[127.0.0.1]:10025
 
content_filter =eaifilter:[127.0.0.1]:10025
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
===Upgrade installation 2===
===พัฒนาการติดตั้งครั้งที่ 2===
 
 
Configure Postfix to modify sender's email address when sending to Non-EAI enabled mail server using Pipe Filter
 
Configure Postfix to modify sender's email address when sending to Non-EAI enabled mail server using Pipe Filter
คุณจะต้องมี Mail server ที่ทำการติดตั้งขั้นพื้นฐานและไม่ได้ติดตั้งการพัฒนาการติตตั้งครั้งที่ 1
+
Make sure you have a working Mail server using the base installation and skipped Upgrade installation 1.
</div>
 
  
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Install php5-cli, the script is using  PHP
ติดตั้ง php5-cli, script จะใช้ PHP
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
sudo apt-get install php5-cli
 
sudo apt-get install php5-cli
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
get the script and place it in /etc/postfix
get ไฟล์ script แล้ววางไว้ใน /etc/postfix
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
   https://github.com/padillareyj/eaifilter/blob/master/eaifilter.php
 
   https://github.com/padillareyj/eaifilter/blob/master/eaifilter.php
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
This filter will check outgoing mail server, if the server does not support SMTPUTF8, it rewrites the address of the sender to a non-ascii format base on alias mapping.
ตัวกรองนี้จะตรวจสอบ mail server ขาออก ว่า server รองรับ SMTPUTF8 หรือไม่ แลัวมันจะเขียนที่อยู่ของผู้ส่งในรูปแบบ non-ascii บนพื้นฐานของ alias mapping ทับลงไป
 
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
smtp      inet  n      -      -      -      -      smtpd -o content_filter=eaifilter -o receive_override_options=no_header_body_checks
 
smtp      inet  n      -      -      -      -      smtpd -o content_filter=eaifilter -o receive_override_options=no_header_body_checks
Line 142: Line 101:
 
         -o in_flow_delay=0
 
         -o in_flow_delay=0
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Update main.cf
ปรับปรุง main.cf
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
content_filter =eaifilter:[127.0.0.1]:10025
 
content_filter =eaifilter:[127.0.0.1]:10025
 
</syntaxhighlight>
 
</syntaxhighlight>
</div>
 
  
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
===Upgrade installation 3===
===พัฒนาการติดตั้งครั้งที่ 3===
 
 
Multiple virtual domain support
 
Multiple virtual domain support
ข้อมูล:
+
Info:
</div>
+
 
 +
Info:
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
* You need to have at least a base installation
* คุณจำเป็นต้องมีการติดตั้งขั้นพื้นฐาน
+
* MySQL does not work for Virtual Domains, the domain and user return as garbled text in the authentication.
* MySQL ไม่สามารถทำงานกับ Virtual Domains ได้ domain และ user ส่งคืนข้อความที่อ่านไม่ออกในการตรวจสอบการ login
+
* Virtual Alias Domain is used instead (it works).
* ใช้ Virtual Alias Domain แทน (ใช้งานได้)
+
* This should work for Ubuntu, Centos and Freebsd
* วิธีนี้น่าจะใช้งานได้กับ Ubuntu, Centos และ Freebsd
 
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
sudo postconf "virtual_alias_domains = yourdomain1.com yourdomain2.com yourdomain3.com youretc.com โดเมนคุณ.ไทย"
 
sudo postconf "virtual_alias_domains = yourdomain1.com yourdomain2.com yourdomain3.com youretc.com โดเมนคุณ.ไทย"
 
sudo postconf "virtual_alias_maps = hash:/etc/postfix/virtual"
 
sudo postconf "virtual_alias_maps = hash:/etc/postfix/virtual"
 
</syntaxhighlight >
 
</syntaxhighlight >
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
edit or create '''/etc/postfix/virtual'''
สร้าง หรือ แก้ไขไฟล์ '''/etc/postfix/virtual'''
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
yourdomain1.com                    DOMAIN
 
yourdomain1.com                    DOMAIN
 
someuser@yourdomain1.com            user1
 
someuser@yourdomain1.com            user1
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
yourdomain2.com                    DOMAIN
 
yourdomain2.com                    DOMAIN
 
anotheruser@yourdomain2.com        user2
 
anotheruser@yourdomain2.com        user2
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
yourdomain3.com                    DOMAIN
 
yourdomain3.com                    DOMAIN
 
admin@yourdomain3.com              user3
 
admin@yourdomain3.com              user3
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
youretc.com                        DOMAIN
 
youretc.com                        DOMAIN
 
admin@youretc.com                  user1
 
admin@youretc.com                  user1
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
โดเมนคุณ.ไทย                        DOMAIN
 
โดเมนคุณ.ไทย                        DOMAIN
 
แอดมิน@โดเมนคุณ.ไทย                  user1
 
แอดมิน@โดเมนคุณ.ไทย                  user1
 
</syntaxhighlight >
 
</syntaxhighlight >
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
+
Update your changes
ปรับปรุงการเปลี่ยนแปลง
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
sudo postmap /etc/postfix/virtual
 
sudo postmap /etc/postfix/virtual
 
</syntaxhighlight >
 
</syntaxhighlight >
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
<!--
 
<!--
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
*[[การติดตั้งขั้นพื้นฐาน]] -  รองรับ SMTPUTF8, SMTP Auth (unencrypted & TLS), imap/pop3 (unencrypted &TLS)
 
*[[การติดตั้งขั้นพื้นฐาน]] -  รองรับ SMTPUTF8, SMTP Auth (unencrypted & TLS), imap/pop3 (unencrypted &TLS)
 
*[[พัฒนาการติดตั้งครั้งที่ 1]] - ตั้งค่า Postfix ให้เพิ่ม SMTPUTF8 อัตโนมัติเมื่อทำการส่ง EAI Address โดยใช้ Pipe Filter
 
*[[พัฒนาการติดตั้งครั้งที่ 1]] - ตั้งค่า Postfix ให้เพิ่ม SMTPUTF8 อัตโนมัติเมื่อทำการส่ง EAI Address โดยใช้ Pipe Filter
Line 217: Line 154:
 
*[[พัฒนาการติดตั้งครั้งที่ 3]] - รองรับ Multiple virtual domain
 
*[[พัฒนาการติดตั้งครั้งที่ 3]] - รองรับ Multiple virtual domain
 
-->
 
-->
</div>
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 239: Line 175:
  
 
== List of EAI Enabled Webmail ==
 
== List of EAI Enabled Webmail ==
 
+
Currently NONE
As the time of writing, there are no Webmail that works.
 
 
 
NONE
 
 
 
NONE
 
  
 
== Configuring Gmail to work as a EAI Client ==
 
== Configuring Gmail to work as a EAI Client ==
Line 258: Line 189:
 
* [https://github.com/padillareyj/eaifilter EAI Filter Scripts]
 
* [https://github.com/padillareyj/eaifilter EAI Filter Scripts]
  
<div class="mw-translate-fuzzy">
 
[[Category: EAI]]
 
</div>
 
  
<div lang="th" dir="ltr" class="mw-content-ltr">
 
 
[[Category: EAI]]
 
[[Category: EAI]]
</div>
 

Latest revision as of 09:33, 3 August 2021

Other languages:
English • ‎ไทย

What is EAI


Internationalized Email Installation

Base Installation

Supports SMTPUTF8, SMTP Auth (unencrypted & TLS), imap/pop3 (unencrypted &TLS)

Ubuntu

Centos

Freebsd

Upgrade installation 1

Configure Postfix to automatically add SMTPUTF8 when sending to EAI Address using Pipe Filter

Make sure you have a working Mail server using the base installation


Install php5-cli, the script is using PHP

sudo apt-get install php5-cli

get the script and place it in /etc/postfix

   cd /etc/postfix
   sudo wget https://raw.githubusercontent.com/padillareyj/eaifilter/master/eai-add-smtputf8.php

Update ownership and permission

    cd /etc/postfix
    sudo chown root:root eai-add-smtputf8.php
    sudo chmod +x eai-add-smtputf8.php

Update your master.cf, the following will filter all incoming mail coming from port 25 and resend to port 10025(accessible locally only), It will append the SMPTUTF8 in MAIL FROM command is executed. MAIL FROM: <MAIL> SMPTUTF8

smtp      inet  n       -       -       -       -       smtpd -o content_filter=eaifilter -o receive_override_options=no_header_body_checks
eaifilter unix - n n - - pipe flags=RXhu user=nobody argv=/etc/postfix/eai-add-smtputf8.php -f ${sender} -d ${recipient}
127.0.0.1:10025   inet  n       -       n       -       -        smtpd
        -o content_filter=
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters
        -o smtpd_helo_required=no
        -o smtpd_helo_restrictions=
        -o smtpd_data_restrictions=
        -o smtpd_client_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks_style=host
        -o in_flow_delay=0


Update main.cf

content_filter =eaifilter:[127.0.0.1]:10025

Upgrade installation 2

Configure Postfix to modify sender's email address when sending to Non-EAI enabled mail server using Pipe Filter Make sure you have a working Mail server using the base installation and skipped Upgrade installation 1.


Install php5-cli, the script is using PHP

sudo apt-get install php5-cli

get the script and place it in /etc/postfix

   https://github.com/padillareyj/eaifilter/blob/master/eaifilter.php


This filter will check outgoing mail server, if the server does not support SMTPUTF8, it rewrites the address of the sender to a non-ascii format base on alias mapping.

smtp      inet  n       -       -       -       -       smtpd -o content_filter=eaifilter -o receive_override_options=no_header_body_checks
eaifilter unix - n n - - pipe flags=RXhu user=nobody argv=/etc/postfix/eaifilter.php -f ${sender} -d ${recipient}
127.0.0.1:10025   inet  n       -       n       -       -        smtpd
        -o content_filter=
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters
        -o smtpd_helo_required=no
        -o smtpd_helo_restrictions=
        -o smtpd_data_restrictions=
        -o smtpd_client_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks_style=host
        -o in_flow_delay=0

Update main.cf

content_filter =eaifilter:[127.0.0.1]:10025


Upgrade installation 3

Multiple virtual domain support Info:

Info:

  • You need to have at least a base installation
  • MySQL does not work for Virtual Domains, the domain and user return as garbled text in the authentication.
  • Virtual Alias Domain is used instead (it works).
  • This should work for Ubuntu, Centos and Freebsd
sudo postconf "virtual_alias_domains = yourdomain1.com yourdomain2.com yourdomain3.com youretc.com โดเมนคุณ.ไทย"
sudo postconf "virtual_alias_maps = hash:/etc/postfix/virtual"

edit or create /etc/postfix/virtual

yourdomain1.com                     DOMAIN
someuser@yourdomain1.com            user1

yourdomain2.com                     DOMAIN
anotheruser@yourdomain2.com         user2

yourdomain3.com                     DOMAIN
admin@yourdomain3.com               user3

youretc.com                         DOMAIN
admin@youretc.com                   user1

โดเมนคุณ.ไทย                        DOMAIN
แอดมิน@โดเมนคุณ.ไทย                  user1

Update your changes

sudo postmap /etc/postfix/virtual


Installation LOCAL EAI SEND TO NON-EAI AS EAI RECEIVE EAI MAIL REPLY TO EAI WITH NON-EAI MAIL CLIENT REPLY TO EAI BY NON-EAI WEBMAIL REPLY TO EAI BY MODIFIED WEBMAIL RECEIVE/REPLY/SEND using Gmail as a Client
Base Installation NO NO YES NO NO YES YES
Upgrade installation 1 NO NO YES YES * YES* YES YES
Upgrade installation 2 YES YES YES YES* YES* YES YES
Upgrade installation 3 - - - - YES YES

 *This will work only if the Mail client will allow a NON-ASCII character or the NON-ASCII character email address will not become garbled.

List of EAI Enabled Mail Client

Outlook 2016   - (Base Installation)Send to EAI as NON EAI (address is copy pasted) - Yes - using Coremail Server as EAI (Receiving)
                 (Base Installation)Receive from EAI as NON EAI - Yes - using Coremail Server as EAI (Receiving)
                 (Base Installation)Reply From EAI as NON EAI - No (The EAI email address is garbled when received) using Coremail Server (Receiving)

List of EAI Enabled Webmail

Currently NONE

Configuring Gmail to work as a EAI Client

Gmail is the best option to use as a Client.

Configuring Outlook 2016

 More Settings-> Outgoing Server -> Checked - My Outgoing server(SMTP) requires authentication
More Settings-> Advance -> POP3 110, SMTP 25 , Use the following type of encrypted connection TLS

List of Scripts