இரட்டை SMTP பகிர்தலை அமைத்தல்
ஒரே மாதிரியான பயனர் கணக்குகளுடன் பல மின்னஞ்சல் சேவையகங்களை நிர்வகிப்பது சவாலானது. இந்தச் சூழ்நிலையில், example.com இல் ஒரு பயனருக்கு மின்னஞ்சல் அனுப்பப்பட்டால், அது ஜேம்ஸ் மற்றும் வின்மெயில் சேவையகங்களாலும் பெறப்பட வேண்டும், மின்னஞ்சல் உள்ளடக்கம் மாறாமல் இருப்பதை உறுதிசெய்கிறது.
DNS இல் பல MX பதிவுகளை உள்ளமைப்பது போன்ற பொதுவான தீர்வுகள், ஒரு நேரத்தில் ஒரு சேவையகத்திற்கு example.com ஐ மட்டுமே இயக்க முடியும் என்பதால் அவை குறுகியதாக இருக்கும். இரண்டு சேவையகங்களுக்கும் மின்னஞ்சல்களை அனுப்புவதற்கு போஸ்ட்ஃபிக்ஸைப் பயன்படுத்துவது உள்ளூர் சேமிப்பகம் இல்லாமல் சிக்கலானதாக நிரூபிக்கப்பட்டுள்ளது, இது smtplib உடன் ஸ்கிரிப்டிங் போன்ற தீர்வுகளுக்கு வழிவகுக்கிறது, இது நம்பகமானதாக இருக்காது. சிறந்த மாற்றுகளை ஆராய்வோம்.
கட்டளை | விளக்கம் |
---|---|
import smtplib | பைத்தானைப் பயன்படுத்தி மின்னஞ்சல்களை அனுப்ப எளிய அஞ்சல் பரிமாற்ற நெறிமுறை நூலகத்தை இறக்குமதி செய்கிறது. |
import sys | கட்டளை வரி வாதங்களைப் பெறப் பயன்படும் கணினி-குறிப்பிட்ட அளவுருக்கள் மற்றும் செயல்பாடுகள் தொகுதியை இறக்குமதி செய்கிறது. |
from email.mime.text import MIMEText | உரை அடிப்படையிலான மின்னஞ்சல் செய்திகளை உருவாக்க MIMEText வகுப்பை இறக்குமதி செய்கிறது. |
from email.mime.multipart import MIMEMultipart | பல பகுதி மின்னஞ்சல் செய்திகளை உருவாக்க MIMEMமல்டிபார்ட் வகுப்பை இறக்குமதி செய்கிறது. |
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 Postfix சேவையை நிறுத்தாமல் கட்டமைப்பு மாற்றங்களைப் பயன்படுத்துகிறது. இந்த அமைப்பு example.com க்கு அனுப்பப்படும் எந்த மின்னஞ்சலும் பைதான் ஸ்கிரிப்ட் மூலம் செயலாக்கப்பட்டு இரண்டு SMTP சேவையகங்களுக்கும் அனுப்பப்படுவதை உறுதி செய்கிறது.
Python உடன் பல SMTP சேவையகங்களுக்கு மின்னஞ்சல்களை அனுப்பவும்
SMTP பகிர்தலை கையாள பைத்தானைப் பயன்படுத்துதல்
# multi_forward.py
import smtplib
import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
sender = sys.argv[1]
recipient = sys.argv[2]
def forward_email(sender, recipient):
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = recipient
msg['Subject'] = 'Forwarded email'
msg.attach(MIMEText('This is the body of the email', 'plain'))
# SMTP servers
smtp_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)
பைதான் ஸ்கிரிப்டைப் பயன்படுத்த Postfix ஐ கட்டமைக்கிறது
தனிப்பயன் அஞ்சல் அனுப்புதலுக்கான போஸ்ட்ஃபிக்ஸ் உள்ளமைவு
# /etc/postfix/master.cf
multi_forward unix - n n - - pipe
flags=Rhu user=nobody argv=/usr/local/bin/multi_forward.py ${sender} ${recipient}
# /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
# /etc/postfix/transport
example.com multi_forward:
# Update transport map
postmap /etc/postfix/transport
# Reload Postfix
systemctl reload postfix
கூடுதல் கருவிகள் மூலம் Postfix செயல்பாட்டை மேம்படுத்துதல்
பல SMTP சேவையகங்களுக்கு மின்னஞ்சல்களை அனுப்புவதற்கான மற்றொரு அணுகுமுறை, கூடுதல் Postfix கருவிகள் மற்றும் உள்ளமைவுகளைப் பயன்படுத்துவதை உள்ளடக்கியது. அத்தகைய ஒரு கருவி போஸ்ட்ஃபிக்ஸ் ஆகும் sender_dependent_relayhost_maps, இது அனுப்புநரின் முகவரியின் அடிப்படையில் வெவ்வேறு ரிலே ஹோஸ்ட்களைக் குறிப்பிட அனுமதிக்கிறது. இந்த அம்சம் பொதுவாக வெளிச்செல்லும் மின்னஞ்சலை வெவ்வேறு ரிலே ஹோஸ்ட்கள் மூலம் அனுப்பப் பயன்படுகிறது என்றாலும், சில ஆக்கப்பூர்வமான உள்ளமைவுகளுடன் இது எங்கள் பயன்பாட்டுக்கு மாற்றியமைக்கப்படலாம். உதாரணமாக, ஒரு கலவை virtual_alias_maps மற்றும் recipient_bcc_maps மின்னஞ்சல்களை நகலெடுக்கவும், அவற்றை வெவ்வேறு முகவரிகளுக்கு அனுப்பவும் பயன்படுத்தலாம், பின்னர் அவை அந்தந்த சேவையகங்களுக்கு அனுப்பப்படும்.
கூடுதலாக, போஸ்ட்ஃபிக்ஸை ஒரு அஞ்சல் வடிகட்டியுடன் ஒருங்கிணைத்தல் Amavisd-new அல்லது Procmail மின்னஞ்சல்களைக் கையாள்வதிலும் ரூட்டிங் செய்வதிலும் அதிக நெகிழ்வுத்தன்மையை வழங்க முடியும். இந்த வடிப்பான்கள் மின்னஞ்சல்களை போஸ்ட்ஃபிக்ஸ் வழியாகச் செல்லும்போது செயலாக்க முடியும், தனிப்பயன் ஸ்கிரிப்ட்கள் அல்லது விதிகளை நகலெடுக்கவும் செய்திகளை பல இடங்களுக்கு அனுப்பவும் அனுமதிக்கிறது. எளிமையான பைதான் ஸ்கிரிப்டைப் பயன்படுத்துவதை விட இந்த அமைப்பு மிகவும் சிக்கலானதாக இருந்தாலும், வலுவான மின்னஞ்சல் செயலாக்கத் திறன்கள் தேவைப்படும் சூழல்களுக்கு அதிக நம்பகத்தன்மை மற்றும் அளவிடுதல் ஆகியவற்றை வழங்க முடியும்.
Postfix மின்னஞ்சல் அனுப்புதலுக்கான பொதுவான கேள்விகள் மற்றும் தீர்வுகள்
- டிஎன்எஸ்ஸில் பல MX பதிவுகளை எவ்வாறு உள்ளமைப்பது?
- துரதிர்ஷ்டவசமாக, DNS MX பதிவுகள் ஒரு முன்னுரிமை நிலைக்கு ஒரு சேவையகத்திற்கு மட்டுமே மேப்பிங்கை ஆதரிக்கின்றன, எனவே ஒரே நேரத்தில் பல சேவையகங்களுக்கு அனுப்புவதற்கு இந்த அணுகுமுறை வேலை செய்யாது.
- இதன் நோக்கம் என்ன transport_maps உத்தரவு?
- தி transport_maps Postfix இல் உள்ள உத்தரவு குறிப்பிட்ட அஞ்சல் போக்குவரத்து முறைகள் மற்றும் இலக்குகளுக்கு மின்னஞ்சல் முகவரிகள் அல்லது டொமைன்களின் மேப்பிங்கைக் குறிப்பிடுகிறது.
- முடியும் sender_dependent_relayhost_maps இந்த சூழ்நிலையில் உதவவா?
- ஆம், sender_dependent_relayhost_maps அனுப்புநரின் முகவரியின் அடிப்படையில் வெவ்வேறு ரிலே ஹோஸ்ட்கள் மூலம் மின்னஞ்சல்களை அனுப்ப முடியும், ஆனால் பல சேவையகங்களுக்கு அனுப்புவதற்கு ஆக்கப்பூர்வமாக மாற்றியமைக்கப்பட வேண்டும்.
- எப்படி செய்கிறது virtual_alias_maps Postfix இல் வேலை செய்கிறீர்களா?
- தி virtual_alias_maps பிற முகவரிகளுக்கு மின்னஞ்சல் முகவரிகளை வரைபடமாக்குவதற்கு, மின்னஞ்சல்களை அனுப்புதல் மற்றும் திசைதிருப்புதல் ஆகியவற்றைச் செயல்படுத்த, Postfix ஐ உத்தரவு அனுமதிக்கிறது.
- பங்கு என்ன recipient_bcc_maps?
- தி recipient_bcc_maps இந்த உத்தரவு Postfix ஆனது BCC பெறுநர்களை உள்வரும் மின்னஞ்சல்களில் தானாகச் சேர்க்க அனுமதிக்கிறது, இது செய்திகளை நகலெடுப்பதற்கு பயனுள்ளதாக இருக்கும்.
- நான் பயன்படுத்தி கொள்ளலாமா Amavisd-new மின்னஞ்சல் பகிர்தலுக்கு Postfix உடன்?
- ஆம், Amavisd-new தனிப்பயன் வடிகட்டுதல் மற்றும் பகிர்தல் விதிகளைப் பயன்படுத்த Postfix உடன் ஒருங்கிணைக்கப்படலாம், மின்னஞ்சல் செயலாக்கத்தின் மீது கூடுதல் கட்டுப்பாட்டை வழங்குகிறது.
- என்ன master.cf கோப்பு பயன்படுத்தப்பட்டது?
- தி master.cf Postfix இல் உள்ள கோப்பு அஞ்சல் விநியோக செயல்முறைகள் மற்றும் தனிப்பயன் போக்குவரத்து சேவைகள் உட்பட அவற்றின் உள்ளமைவுகளை வரையறுக்கிறது.
- நான் எப்படி மேம்படுத்துவது transport map தரவுத்தளமா?
- பயன்படுத்த postmap /etc/postfix/transport போக்குவரத்து வரைபடக் கோப்பிலிருந்து பைனரி தரவுத்தளத்தை உருவாக்க அல்லது புதுப்பிக்க கட்டளை.
- Postfix ஐ மீண்டும் ஏற்றுவது ஏன் முக்கியம்?
- Postfix உடன் மீண்டும் ஏற்றுகிறது systemctl reload postfix சேவையை நிறுத்தாமல் உள்ளமைவு மாற்றங்களைப் பயன்படுத்துகிறது, சீரான செயல்பாட்டை உறுதி செய்கிறது.
- என்ன smtplib பைத்தானில் பயன்படுத்தப்பட்டது?
- தி smtplib பைத்தானில் உள்ள நூலகம் SMTP வழியாக மின்னஞ்சல்களை அனுப்ப பயன்படுகிறது, ஸ்கிரிப்ட்கள் மின்னஞ்சல் பரிமாற்றத்தை நிரல் முறையில் கையாள அனுமதிக்கிறது.
டூயல் சர்வர் ஃபார்வர்டிங் பற்றிய இறுதி எண்ணங்கள்
பல SMTP சேவையகங்களுக்கு செய்திகளை அனுப்புவதற்கு Postfix ஐ அமைப்பது தனிப்பயன் ஸ்கிரிப்டுகள் மற்றும் விரிவான Postfix உள்ளமைவுகளின் கலவையை உள்ளடக்கியது. டிஎன்எஸ் அல்லது எளிய பைதான் ஸ்கிரிப்ட்களைப் பயன்படுத்தும் ஆரம்ப முயற்சிகள் தேவையான நம்பகத்தன்மையை வழங்கவில்லை என்றாலும், மேம்பட்ட போஸ்ட்ஃபிக்ஸ் அம்சங்கள் மற்றும் Amavisd-new அல்லது Procmail போன்ற கருவிகளை ஒருங்கிணைப்பது மிகவும் வலுவான தீர்வை அளிக்கும். போக்குவரத்து வரைபடங்கள், மெய்நிகர் மாற்றுப்பெயர் வரைபடங்கள் மற்றும் பெறுநரின் BCC வரைபடங்களை கவனமாக உள்ளமைப்பதன் மூலம், ஜேம்ஸ் மற்றும் வின்மெயில் சர்வர்கள் ஆகிய இரண்டிற்கும் தடையற்ற மற்றும் திறமையான செய்திகளை அனுப்புவதை உறுதிசெய்யலாம். இந்த அணுகுமுறை உங்கள் மின்னஞ்சல் உள்கட்டமைப்பு மீள்தன்மை மற்றும் சிக்கலான ரூட்டிங் தேவைகளை கையாளும் திறன் கொண்டதாக இருப்பதை உறுதி செய்கிறது.