ഡ്യുവൽ SMTP ഫോർവേഡിംഗ് സജ്ജീകരിക്കുന്നു
ഒരേ ഉപയോക്തൃ അക്കൗണ്ടുകളുള്ള ഒന്നിലധികം ഇമെയിൽ സെർവറുകൾ കൈകാര്യം ചെയ്യുന്നത് വെല്ലുവിളി നിറഞ്ഞതാണ്. ഈ സാഹചര്യത്തിൽ, example.com-ൽ ഒരു ഉപയോക്താവിന് ഇമെയിൽ അയയ്ക്കുമ്പോൾ, അത് ജെയിംസ്, വിൻമെയിൽ സെർവറുകളിൽ ലഭിക്കേണ്ടതുണ്ട്, ഇമെയിൽ ഉള്ളടക്കം മാറ്റമില്ലാതെ തുടരുന്നു.
DNS-ൽ ഒന്നിലധികം MX റെക്കോർഡുകൾ കോൺഫിഗർ ചെയ്യുന്നത് പോലെയുള്ള പൊതുവായ പരിഹാരങ്ങൾ, ഒരു സമയം ഒരൊറ്റ സെർവറിലേക്ക് example.com-നെ മാത്രമേ നയിക്കാനാകൂ. ലോക്കൽ സ്റ്റോറേജ് ഇല്ലാതെ രണ്ട് സെർവറുകളിലേക്കും ഇമെയിലുകൾ കൈമാറാൻ Postfix ഉപയോഗിക്കുന്നത് സങ്കീർണ്ണമാണെന്ന് തെളിയിക്കപ്പെട്ടിട്ടുണ്ട്, ഇത് smtplib ഉപയോഗിച്ചുള്ള സ്ക്രിപ്റ്റിംഗ് പോലുള്ള പരിഹാരങ്ങളിലേക്ക് നയിക്കുന്നു, അത് വിശ്വസനീയമല്ലായിരിക്കാം. നമുക്ക് മികച്ച ഇതരമാർഗങ്ങൾ പര്യവേക്ഷണം ചെയ്യാം.
| കമാൻഡ് | വിവരണം |
|---|---|
| import smtplib | പൈത്തൺ ഉപയോഗിച്ച് ഇമെയിലുകൾ അയക്കുന്നതിനുള്ള ലളിതമായ മെയിൽ ട്രാൻസ്ഫർ പ്രോട്ടോക്കോൾ ലൈബ്രറി ഇറക്കുമതി ചെയ്യുന്നു. |
| import sys | കമാൻഡ്-ലൈൻ ആർഗ്യുമെൻ്റുകൾ ലഭിക്കാൻ ഉപയോഗിക്കുന്ന സിസ്റ്റം-നിർദ്ദിഷ്ട പാരാമീറ്ററുകളും ഫംഗ്ഷൻ മൊഡ്യൂളും ഇറക്കുമതി ചെയ്യുന്നു. |
| from email.mime.text import MIMEText | ടെക്സ്റ്റ് അടിസ്ഥാനമാക്കിയുള്ള ഇമെയിൽ സന്ദേശങ്ങൾ സൃഷ്ടിക്കാൻ MIMEText ക്ലാസ് ഇറക്കുമതി ചെയ്യുന്നു. |
| from email.mime.multipart import MIMEMultipart | മൾട്ടിപാർട്ട് ഇമെയിൽ സന്ദേശങ്ങൾ സൃഷ്ടിക്കാൻ MIMEMultipart ക്ലാസ് ഇറക്കുമതി ചെയ്യുന്നു. |
| msg.attach(MIMEText('text', 'plain')) | ഇമെയിൽ സന്ദേശത്തിലേക്ക് ഒരു പ്ലെയിൻ ടെക്സ്റ്റ് ബോഡി അറ്റാച്ചുചെയ്യുന്നു. |
| with smtplib.SMTP(server) as smtp | SMTP സെർവറിലേക്ക് ഒരു കണക്ഷൻ തുറക്കുകയും ഇമെയിൽ അയച്ചതിന് ശേഷം അത് ശരിയായി അടച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുകയും ചെയ്യുന്നു. |
| postmap /etc/postfix/transport | മെയിൽ റൂട്ടിംഗിനായി പോസ്റ്റ്ഫിക്സ് ഉപയോഗിക്കുന്ന ട്രാൻസ്പോർട്ട് മാപ്പ് ഫയലിൽ നിന്ന് ഒരു ബൈനറി ഡാറ്റാബേസ് സൃഷ്ടിക്കുന്നു. |
| systemctl reload postfix | എന്തെങ്കിലും മാറ്റങ്ങൾ വരുത്തി, സേവനം നിർത്താതെ തന്നെ പോസ്റ്റ്ഫിക്സ് കോൺഫിഗറേഷൻ റീലോഡ് ചെയ്യുന്നു. |
പോസ്റ്റ്ഫിക്സും പൈത്തൺ ഇൻ്റഗ്രേഷനും മനസ്സിലാക്കുന്നു
നൽകിയിരിക്കുന്ന സ്ക്രിപ്റ്റുകൾ രണ്ട് SMTP സെർവറുകളിലേക്ക് ഇമെയിലുകൾ കൈമാറാൻ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നു, രണ്ട് സെർവറുകൾക്കും ഒരേ ഇമെയിൽ ലഭിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുന്നു. പൈത്തൺ സ്ക്രിപ്റ്റ്, multi_forward.py, ഉപയോഗിക്കുന്നു import smtplib ഇമെയിൽ അയയ്ക്കൽ കൈകാര്യം ചെയ്യാൻ ലൈബ്രറി. അത് ഇറക്കുമതി ചെയ്യുന്നു sys അയച്ചയാളും സ്വീകർത്താവും പോലുള്ള കമാൻഡ്-ലൈൻ ആർഗ്യുമെൻ്റുകൾ ലഭിക്കുന്നതിന്. സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഇമെയിൽ നിർമ്മിക്കുന്നു from email.mime.text import MIMEText ഒപ്പം from email.mime.multipart import MIMEMultipart ഇമെയിൽ ബോഡി സൃഷ്ടിക്കുന്നതിനും അറ്റാച്ചുചെയ്യുന്നതിനും. ഇത് പിന്നീട് SMTP സെർവറുകളുടെ ഒരു ലിസ്റ്റ് ഉപയോഗിച്ച് ആവർത്തിക്കുകയും ഓരോന്നിനും ഇമെയിൽ അയയ്ക്കുകയും ചെയ്യുന്നു with smtplib.SMTP(server) as smtp.
Postfix വശത്ത്, കോൺഫിഗറേഷൻ പരിഷ്ക്കരിക്കുന്നത് ഉൾപ്പെടുന്നു /etc/postfix/master.cf ഇഷ്ടാനുസൃത ഗതാഗത സേവനം നിർവചിക്കുന്നതിനുള്ള ഫയൽ, multi_forward, ഇത് പൈത്തൺ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നു. ദി /etc/postfix/main.cf ഒരു ട്രാൻസ്പോർട്ട് മാപ്പ് ഉൾപ്പെടുത്തുന്നതിനായി ഫയൽ അപ്ഡേറ്റ് ചെയ്തു, അതിൽ വ്യക്തമാക്കിയിരിക്കുന്നു /etc/postfix/transport. ആജ്ഞ postmap /etc/postfix/transport ട്രാൻസ്പോർട്ട് മാപ്പിൽ നിന്ന് ഒരു ബൈനറി ഡാറ്റാബേസ് സൃഷ്ടിക്കുന്നു, കൂടാതെ systemctl reload postfix പോസ്റ്റ്ഫിക്സ് സേവനം നിർത്താതെ തന്നെ കോൺഫിഗറേഷൻ മാറ്റങ്ങൾ ബാധകമാക്കുന്നു. example.com-ലേക്ക് അയയ്ക്കുന്ന ഏതൊരു ഇമെയിലും പൈത്തൺ സ്ക്രിപ്റ്റ് പ്രോസസ്സ് ചെയ്യുകയും രണ്ട് SMTP സെർവറുകളിലേക്കും ഫോർവേഡ് ചെയ്യുകയും ചെയ്യുന്നുവെന്ന് ഈ സജ്ജീകരണം ഉറപ്പാക്കുന്നു.
പൈത്തൺ ഉപയോഗിച്ച് ഒന്നിലധികം SMTP സെർവറുകളിലേക്ക് ഇമെയിലുകൾ കൈമാറുക
SMTP ഫോർവേഡിംഗ് കൈകാര്യം ചെയ്യാൻ പൈത്തൺ ഉപയോഗിക്കുന്നു
# multi_forward.pyimport smtplibimport sysfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartsender = sys.argv[1]recipient = sys.argv[2]def forward_email(sender, recipient):msg = MIMEMultipart()msg['From'] = sendermsg['To'] = recipientmsg['Subject'] = 'Forwarded email'msg.attach(MIMEText('This is the body of the email', 'plain'))# SMTP serverssmtp_servers = ['james.example.com', 'winmail.example.com']for server in smtp_servers:with smtplib.SMTP(server) as smtp:smtp.sendmail(sender, recipient, msg.as_string())if __name__ == '__main__':forward_email(sender, recipient)
പൈത്തൺ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നതിന് പോസ്റ്റ്ഫിക്സ് കോൺഫിഗർ ചെയ്യുന്നു
ഇഷ്ടാനുസൃത മെയിൽ ഫോർവേഡിംഗിനായുള്ള പോസ്റ്റ്ഫിക്സ് കോൺഫിഗറേഷൻ
# /etc/postfix/master.cfmulti_forward unix - n n - - pipeflags=Rhu user=nobody argv=/usr/local/bin/multi_forward.py ${sender} ${recipient}# /etc/postfix/main.cftransport_maps = hash:/etc/postfix/transport# /etc/postfix/transportexample.com multi_forward:# Update transport mappostmap /etc/postfix/transport# Reload Postfixsystemctl reload postfix
അധിക ടൂളുകൾ ഉപയോഗിച്ച് പോസ്റ്റ്ഫിക്സ് പ്രവർത്തനം മെച്ചപ്പെടുത്തുന്നു
ഒന്നിലധികം SMTP സെർവറുകളിലേക്ക് ഇമെയിലുകൾ കൈമാറുന്നതിനുള്ള മറ്റൊരു സമീപനം അധിക പോസ്റ്റ്ഫിക്സ് ടൂളുകളും കോൺഫിഗറേഷനുകളും ഉപയോഗിക്കുന്നത് ഉൾപ്പെടുന്നു. അത്തരത്തിലുള്ള ഒരു ടൂൾ ആണ് പോസ്റ്റ്ഫിക്സ് sender_dependent_relayhost_maps, അയച്ചയാളുടെ വിലാസത്തെ അടിസ്ഥാനമാക്കി വ്യത്യസ്ത റിലേ ഹോസ്റ്റുകൾ വ്യക്തമാക്കാൻ ഇത് അനുവദിക്കുന്നു. വ്യത്യസ്ത റിലേ ഹോസ്റ്റുകളിലൂടെ ഔട്ട്ഗോയിംഗ് മെയിലുകൾ റൂട്ട് ചെയ്യാൻ ഈ സവിശേഷത സാധാരണയായി ഉപയോഗിക്കുമെങ്കിലും, ചില ക്രിയേറ്റീവ് കോൺഫിഗറേഷൻ ഉപയോഗിച്ച് ഇത് ഞങ്ങളുടെ ഉപയോഗത്തിന് അനുയോജ്യമാക്കാം. ഉദാഹരണത്തിന്, ഒരു കോമ്പിനേഷൻ virtual_alias_maps ഒപ്പം recipient_bcc_maps ഇമെയിലുകൾ ഡ്യൂപ്ലിക്കേറ്റ് ചെയ്യാനും അവ വ്യത്യസ്ത വിലാസങ്ങളിലേക്ക് ഫോർവേഡ് ചെയ്യാനും ഉപയോഗിക്കാം, അവ ബന്ധപ്പെട്ട സെർവറുകളിലേക്ക് റൂട്ട് ചെയ്യുന്നു.
കൂടാതെ, പോസ്റ്റ്ഫിക്സിനെ ഒരു മെയിൽ ഫിൽട്ടറുമായി സംയോജിപ്പിക്കുന്നു Amavisd-new അഥവാ Procmail ഇമെയിലുകൾ കൈകാര്യം ചെയ്യുന്നതിനും റൂട്ടിംഗ് ചെയ്യുന്നതിനും കൂടുതൽ വഴക്കം നൽകാൻ കഴിയും. ഈ ഫിൽട്ടറുകൾക്ക് പോസ്റ്റ്ഫിക്സിലൂടെ കടന്നുപോകുമ്പോൾ ഇമെയിലുകൾ പ്രോസസ്സ് ചെയ്യാൻ കഴിയും, ഇത് ഇഷ്ടാനുസൃത സ്ക്രിപ്റ്റുകളോ നിയമങ്ങളോ ഡ്യൂപ്ലിക്കേറ്റ് ചെയ്യാനും സന്ദേശങ്ങൾ ഒന്നിലധികം ലക്ഷ്യസ്ഥാനങ്ങളിലേക്ക് ഫോർവേഡ് ചെയ്യാനും അനുവദിക്കുന്നു. ഈ സജ്ജീകരണം ഒരു ലളിതമായ പൈത്തൺ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നതിനേക്കാൾ സങ്കീർണ്ണമായിരിക്കാമെങ്കിലും, ശക്തമായ ഇമെയിൽ പ്രോസസ്സിംഗ് കഴിവുകൾ ആവശ്യമുള്ള പരിതസ്ഥിതികൾക്ക് ഇതിന് കൂടുതൽ വിശ്വാസ്യതയും സ്കേലബിളിറ്റിയും വാഗ്ദാനം ചെയ്യാൻ കഴിയും.
പോസ്റ്റ്ഫിക്സ് ഇമെയിൽ കൈമാറുന്നതിനുള്ള പൊതുവായ ചോദ്യങ്ങളും പരിഹാരങ്ങളും
- DNS-ൽ ഒന്നിലധികം MX റെക്കോർഡുകൾ എങ്ങനെ കോൺഫിഗർ ചെയ്യാം?
- നിർഭാഗ്യവശാൽ, DNS MX റെക്കോർഡുകൾ മുൻഗണനാ തലത്തിൽ ഒരു സെർവറിലേക്ക് മാപ്പിംഗ് മാത്രമേ പിന്തുണയ്ക്കൂ, അതിനാൽ ഒരേസമയം ഒന്നിലധികം സെർവറുകളിലേക്ക് കൈമാറുന്നതിന് ഈ സമീപനം പ്രവർത്തിക്കില്ല.
- എന്താണ് ഉദ്ദേശ്യം transport_maps നിർദ്ദേശം?
- ദി transport_maps പോസ്റ്റ്ഫിക്സിലെ നിർദ്ദേശം ഇമെയിൽ വിലാസങ്ങളുടെയോ ഡൊമെയ്നുകളുടെയോ നിർദ്ദിഷ്ട മെയിൽ ഗതാഗത രീതികളിലേക്കും ലക്ഷ്യസ്ഥാനങ്ങളിലേക്കും മാപ്പിംഗ് വ്യക്തമാക്കുന്നു.
- കഴിയും sender_dependent_relayhost_maps ഈ സാഹചര്യത്തിൽ സഹായിക്കണോ?
- അതെ, sender_dependent_relayhost_maps അയച്ചയാളുടെ വിലാസത്തെ അടിസ്ഥാനമാക്കി വ്യത്യസ്ത റിലേ ഹോസ്റ്റുകളിലൂടെ ഇമെയിലുകൾ റൂട്ട് ചെയ്യാൻ കഴിയും, എന്നാൽ ഒന്നിലധികം സെർവറുകളിലേക്ക് കൈമാറുന്നതിന് അത് ക്രിയാത്മകമായി പൊരുത്തപ്പെടുത്തേണ്ടതുണ്ട്.
- എങ്ങിനെയാണ് virtual_alias_maps പോസ്റ്റ്ഫിക്സിൽ ജോലി ചെയ്യണോ?
- ദി virtual_alias_maps ഇമെയിൽ വിലാസങ്ങൾ മറ്റ് വിലാസങ്ങളിലേക്ക് മാപ്പ് ചെയ്യുന്നതിനും ഇമെയിലുകൾ ഫോർവേഡുചെയ്യുന്നതിനും റീഡയറക്ടുചെയ്യുന്നതിനും പ്രാപ്തമാക്കുന്നതിന് പോസ്റ്റ്ഫിക്സിനെ നിർദ്ദേശം അനുവദിക്കുന്നു.
- എന്താണ് പങ്ക് recipient_bcc_maps?
- ദി recipient_bcc_maps ഇൻകമിംഗ് ഇമെയിലുകളിലേക്ക് BCC സ്വീകർത്താക്കളെ സ്വയമേവ ചേർക്കാൻ പോസ്റ്റ്ഫിക്സിനെ നിർദ്ദേശം അനുവദിക്കുന്നു, സന്ദേശങ്ങൾ തനിപ്പകർപ്പാക്കുന്നതിന് ഉപയോഗപ്രദമാണ്.
- എനിക്ക് ഉപയോഗിക്കാമോ Amavisd-new ഇമെയിൽ ഫോർവേഡിംഗിനായി പോസ്റ്റ്ഫിക്സ് ഉപയോഗിച്ചോ?
- അതെ, Amavisd-new ഇമെയിൽ പ്രോസസ്സിംഗിൽ കൂടുതൽ നിയന്ത്രണം നൽകിക്കൊണ്ട് ഇഷ്ടാനുസൃത ഫിൽട്ടറിംഗ്, ഫോർവേഡിംഗ് നിയമങ്ങൾ പ്രയോഗിക്കുന്നതിന് Postfix-മായി സംയോജിപ്പിക്കാനാകും.
- എന്താണ് master.cf ഫയൽ ഉപയോഗിച്ചത്?
- ദി master.cf പോസ്റ്റ്ഫിക്സിലെ ഫയൽ, ഇഷ്ടാനുസൃത ഗതാഗത സേവനങ്ങൾ ഉൾപ്പെടെ മെയിൽ ഡെലിവറി പ്രക്രിയകളും അവയുടെ കോൺഫിഗറേഷനുകളും നിർവചിക്കുന്നു.
- ഞാൻ എങ്ങനെ അപ്ഡേറ്റ് ചെയ്യും transport map ഡാറ്റാബേസ്?
- ഉപയോഗിക്കുക postmap /etc/postfix/transport ട്രാൻസ്പോർട്ട് മാപ്പ് ഫയലിൽ നിന്ന് ബൈനറി ഡാറ്റാബേസ് സൃഷ്ടിക്കുന്നതിനോ അപ്ഡേറ്റ് ചെയ്യുന്നതിനോ ഉള്ള കമാൻഡ്.
- പോസ്റ്റ്ഫിക്സ് റീലോഡ് ചെയ്യുന്നത് പ്രധാനമായിരിക്കുന്നത് എന്തുകൊണ്ട്?
- ഇതുപയോഗിച്ച് പോസ്റ്റ്ഫിക്സ് റീലോഡ് ചെയ്യുന്നു systemctl reload postfix സുഗമമായ പ്രവർത്തനം ഉറപ്പാക്കിക്കൊണ്ട് സേവനം നിർത്താതെ കോൺഫിഗറേഷൻ മാറ്റങ്ങൾ ബാധകമാക്കുന്നു.
- എന്താണ് smtplib പൈത്തണിൽ ഉപയോഗിച്ചത്?
- ദി smtplib SMTP വഴി ഇമെയിലുകൾ അയയ്ക്കുന്നതിന് പൈത്തണിലെ ലൈബ്രറി ഉപയോഗിക്കുന്നു, ഇത് സ്ക്രിപ്റ്റുകളെ ഇമെയിൽ ട്രാൻസ്മിഷൻ പ്രോഗ്രാമാമാറ്റിക് ആയി കൈകാര്യം ചെയ്യാൻ അനുവദിക്കുന്നു.
ഡ്യുവൽ സെർവർ ഫോർവേഡിംഗിനെക്കുറിച്ചുള്ള അന്തിമ ചിന്തകൾ
ഒന്നിലധികം SMTP സെർവറുകളിലേക്ക് സന്ദേശങ്ങൾ കൈമാറുന്നതിന് പോസ്റ്റ്ഫിക്സ് സജ്ജീകരിക്കുന്നത് ഇഷ്ടാനുസൃത സ്ക്രിപ്റ്റുകളുടെയും വിശദമായ പോസ്റ്റ്ഫിക്സ് കോൺഫിഗറേഷനുകളുടെയും സംയോജനമാണ്. DNS അല്ലെങ്കിൽ ലളിതമായ പൈത്തൺ സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ചുള്ള പ്രാരംഭ ശ്രമങ്ങൾ ആവശ്യമായ വിശ്വാസ്യത നൽകില്ലെങ്കിലും, വിപുലമായ Postfix സവിശേഷതകളും Amavisd-new അല്ലെങ്കിൽ Procmail പോലുള്ള ടൂളുകളും സംയോജിപ്പിക്കുന്നത് കൂടുതൽ ശക്തമായ പരിഹാരം നൽകും. ഗതാഗത മാപ്പുകൾ, വെർച്വൽ അപരനാമ മാപ്പുകൾ, സ്വീകർത്താക്കളുടെ BCC മാപ്പുകൾ എന്നിവ ശ്രദ്ധാപൂർവ്വം കോൺഫിഗർ ചെയ്യുന്നതിലൂടെ, ജെയിംസ്, വിൻമെയിൽ സെർവറുകളിലേക്ക് തടസ്സങ്ങളില്ലാത്തതും കാര്യക്ഷമവുമായ സന്ദേശങ്ങൾ കൈമാറുന്നത് നിങ്ങൾക്ക് ഉറപ്പാക്കാൻ കഴിയും. ഈ സമീപനം നിങ്ങളുടെ ഇമെയിൽ ഇൻഫ്രാസ്ട്രക്ചർ പ്രതിരോധശേഷിയുള്ളതും സങ്കീർണ്ണമായ റൂട്ടിംഗ് ആവശ്യകതകൾ കൈകാര്യം ചെയ്യാൻ പ്രാപ്തവുമാണെന്ന് ഉറപ്പാക്കുന്നു.