Activiti 6 பணிப்பாய்வுகளில் மின்னஞ்சல் அமைவைச் சரிசெய்தல்
Activiti 6 இல் அஞ்சல் பணியை உள்ளமைப்பது கடினமானதாக உணரலாம், குறிப்பாக நீங்கள் பிளாட்ஃபார்மிற்கு புதியவராக இருக்கும்போது. பணிப்பாய்வுகளை தானியக்கமாக்குவதற்கு மின்னஞ்சல் ஒருங்கிணைப்பு ஒரு முக்கியமான அம்சமாகும், ஆனால் இது தந்திரமான உள்ளமைவுகளால் பயனர்களை அடிக்கடி பயணிக்கிறது. இந்த நிலையில், ஜிமெயிலைப் பயன்படுத்துவது சிக்கலான மற்றொரு அடுக்கைச் சேர்க்கிறது, குறிப்பாக Google இன் சமீபத்திய பாதுகாப்பு மாற்றங்களுடன்.
சமீபத்தில், சமூக மன்றத்தில் பகிரப்பட்ட வழிகாட்டுதல்களைப் பின்பற்றும்போது, அஞ்சல் பணியை அமைக்க முயற்சிப்பதில் ஒரு சிக்கலை எதிர்கொண்டேன். "குறைந்த பாதுகாப்பு ஆப்ஸ்" அணுகலை Google இனி ஆதரிக்காது என்பதால், பரிந்துரைக்கப்பட்டபடி ஜிமெயில் பயன்பாட்டு கடவுச்சொல்லை பயன்படுத்தினேன். இருப்பினும், இந்த முயற்சிகள் இருந்தபோதிலும், பணி மின்னஞ்சல்களை அனுப்புவதில் தோல்வியடைந்தது. நீங்கள் இதேபோன்ற ஒன்றை எதிர்கொண்டால், நீங்கள் தனியாக இல்லை. 😊
பதிவுகள் கடுமையான பிழையை வெளிப்படுத்தின: `java.net.ConnectException: இணைப்பு மறுக்கப்பட்டது: இணைப்பு`. SMTP சேவையகத்துடன் சரியான இணைப்பை பயன்பாட்டால் ஏற்படுத்த முடியாததால் மின்னஞ்சலை அனுப்ப முடியவில்லை எனத் தோன்றியது. ஆக்டிவிட்டியில் சுமூகமான பணிப்பாய்வு ஆட்டோமேஷனை பராமரிக்க முயற்சிக்கும் போது இது நம்பமுடியாத அளவிற்கு வெறுப்பாக இருக்கும்.
இந்தக் கட்டுரையில், இந்தச் சிக்கலுக்கான சாத்தியமான காரணங்கள் மற்றும் அவற்றை எப்படித் தீர்ப்பது என்பதை படிப்படியாகக் கூறுகிறேன். ஆக்டிவிட்டி 6 இல் உள்ள ஜிமெயில் உள்ளமைவுகளுடன் நீங்கள் சிரமப்படுகிறீர்கள் என்றால், இதை ஒன்றாகச் சரிசெய்வோம், இதனால் உங்கள் பணிப்பாய்வுகள் மீண்டும் ஒருமுறை தடையின்றி இயங்கும்! 🚀
| கட்டளை | பயன்பாட்டின் உதாரணம் |
|---|---|
| getPasswordAuthentication() | இந்த முறை Authenticator வகுப்பின் ஒரு பகுதியாகும், மேலும் SMTP சேவையகத்திற்கான பயனர்பெயர் மற்றும் கடவுச்சொல்லை வழங்க பயன்படுகிறது. பாதுகாப்பான அஞ்சல் அமர்வுகளை உருவாக்குவதற்கு இது குறிப்பிட்டது. |
| Session.getInstance() | வழங்கப்பட்ட பண்புகள் மற்றும் அங்கீகரிப்புடன் புதிய அஞ்சல் அமர்வை உருவாக்குகிறது. ஜாவாவில் பாதுகாப்பான மின்னஞ்சல் அனுப்புவதற்கான உள்ளமைவை நிறுவுவதற்கு இது முக்கியமானது. |
| MimeMessage | பணக்கார வடிவமைப்பை ஆதரிக்கும் சிறப்பு மின்னஞ்சல் செய்தி வகுப்பு. மின்னஞ்சல் உள்ளடக்கம், பெறுநர்கள் மற்றும் பொருள் ஆகியவற்றை வரையறுக்க இது இங்கே பயன்படுத்தப்படுகிறது. |
| setRecipients() | மின்னஞ்சலுக்கான பெறுநரைக் குறிப்பிடுகிறது. இந்த கட்டளை "TO", "CC" மற்றும் "BCC" போன்ற பல பெறுநர் வகைகளைக் கையாள முடியும். |
| Transport.send() | மின்னஞ்சல் செய்தியை சரியாக உள்ளமைத்து அங்கீகரிக்கப்பட்ட பிறகு அனுப்புவதற்கு பொறுப்பு. |
| Properties.put() | STARTTLS ஐ இயக்குதல் அல்லது சர்வர் ஹோஸ்ட் மற்றும் போர்ட்டைக் குறிப்பிடுவது போன்ற SMTP அமர்வுக்கான உள்ளமைவு பண்புகளைச் சேர்க்கிறது. |
| activiti:to | ஒரு செயல்பாடு-குறிப்பிட்ட BPMN பண்புக்கூறு அஞ்சல் பணிகளில் பெறுநரின் மின்னஞ்சல் முகவரியை ஒரு பணிப்பாய்வுக்குள் மாறும் வகையில் குறிப்பிட பயன்படுகிறது. |
| activiti:subject | ஆக்டிவிட்டி அஞ்சல் பணியில் மின்னஞ்சலுக்கான தலைப்பு வரியை வரையறுக்கிறது, செயல்முறை வரையறைக்குள் தனிப்பயனாக்கத்தை நேரடியாக செயல்படுத்துகிறது. |
| activiti:html | மின்னஞ்சலின் உள்ளடக்கம் HTML ஆக விளக்கப்பட வேண்டுமா என்பதைக் குறிப்பிடுகிறது, இது அஞ்சல் பணிக்குள் பணக்கார உரை வடிவமைப்பை அனுமதிக்கிறது. |
| mail.debug | SMTP தகவல்தொடர்புகளுக்கான விரிவான பிழைத்திருத்தத் தகவலை செயல்படுத்தும் ஒரு சொத்து, உள்ளமைவு அல்லது இணைப்புச் சிக்கல்களைக் கண்டறிவதற்கு விலைமதிப்பற்றது. |
Activiti 6 இல் அஞ்சல் பணி உள்ளமைவுகளைப் புரிந்துகொண்டு மேம்படுத்துதல்
அமைத்தல் a அஞ்சல் பணி Activiti 6 இல் உங்கள் மின்னஞ்சல் வழங்குநருடன் தடையற்ற ஒருங்கிணைப்பை உறுதிசெய்ய குறிப்பிட்ட கட்டளைகள் மற்றும் பண்புகளை உள்ளமைப்பது அடங்கும். வழங்கப்பட்ட எடுத்துக்காட்டு ஸ்கிரிப்ட்களில், ஜிமெயிலின் SMTP சேவையகத்துடன் இணைக்க பாதுகாப்பான மற்றும் மட்டு அணுகுமுறையைப் பயன்படுத்துவதே மைய இலக்கு. போன்ற கட்டளைகளைப் பயன்படுத்துவதன் மூலம் Session.getInstance(), சர்வர் ஹோஸ்ட், போர்ட் மற்றும் நற்சான்றிதழ்கள் போன்ற அத்தியாவசிய SMTP விவரங்களைக் கொண்ட ஒரு அமர்வை நாங்கள் உருவாக்குகிறோம். கூகுளின் கடுமையான பாதுகாப்புடன் கூட, Gmail இன் ஆப்ஸ் கடவுச்சொற்களைப் பயன்படுத்தி மின்னஞ்சல் பணி வெற்றிகரமாக அங்கீகரிக்கப்படுவதை இந்த அமைப்பு உறுதி செய்கிறது. 😊
மூலம் SMTP பண்புகளை வரையறுப்பதன் மூலம் ஸ்கிரிப்ட் தொடங்குகிறது பண்புகள்.புட்() கட்டளை. இந்த பண்புகள் அங்கீகாரம் மற்றும் STARTTLS குறியாக்கத்தை செயல்படுத்துகின்றன, இவை இரண்டும் Gmail உடன் பாதுகாப்பான தொடர்புக்கு முக்கியமானவை. அமர்வு பின்னர் தனிப்பயன் அங்கீகரிப்பாளர் மூலம் அங்கீகரிக்கப்படுகிறது, இது சரியான சான்றுகள் மட்டுமே சேவையகத்திற்கு அனுப்பப்படுவதை உறுதி செய்கிறது. உங்கள் ஜிமெயில் கணக்கைச் சோதிப்பது அல்லது தோல்வியுற்ற உள்நுழைவுகளைச் சரிசெய்தல் போன்ற வாழ்க்கை எடுத்துக்காட்டுகள், வரிசைப்படுத்துவதற்கு முன் உங்கள் உள்ளமைவைச் சரிபார்ப்பது எவ்வளவு அவசியம் என்பதை எடுத்துக்காட்டுகிறது. உதாரணமாக, தவறான சான்றுகள் பயன்படுத்தப்பட்டால், ஜிமெயில் இணைப்பை நிராகரிக்கும்.
மின்னஞ்சல் உள்ளடக்கத்தை பயன்படுத்தி வடிவமைக்கப்பட்டுள்ளது மைம்மெசேஜ் வகுப்பு, இது பெறுநர்களை அமைத்தல், பொருள் வரிகள் மற்றும் உடல் உள்ளடக்கம் உட்பட விரிவான தனிப்பயனாக்கத்தை அனுமதிக்கிறது. இன் உள்ளடக்கம் செட் பெறுபவர்கள் கட்டளை மாறும் பெறுநர் பணியை செயல்படுத்துகிறது, இது பல்வேறு முகவரிகளுக்கு மின்னஞ்சல்களை அனுப்ப வேண்டிய பணிப்பாய்வுகளுக்கு ஏற்றதாக அமைகிறது. மின்னஞ்சல் தயாரானதும், தி Transport.send() கட்டளை அதை அனுப்புகிறது. இந்த முறை வலுவானது மற்றும் அனைத்து உள்ளமைவுகளும் சரியாக சரிபார்க்கப்பட்டால் மட்டுமே மின்னஞ்சல் அனுப்பப்படும் என்பதை உறுதி செய்கிறது.
Activiti செயல்முறை மாதிரியில், கட்டளைகள் போன்றவை செயல்பாடு: செய்ய மற்றும் செயல்பாடு: html பணிப்பாய்வுக்கு மாறும் திறன்களைச் சேர்க்கவும். இந்த பண்புக்கூறுகள் மின்னஞ்சல் பெறுநர்கள் மற்றும் உள்ளடக்கத்தை நேரடியாக BPMN XML இல் வரையறுக்க உங்களை அனுமதிக்கின்றன, உங்கள் செயல்முறை வரையறைகளில் மின்னஞ்சல் பணிகளை தடையின்றி ஒருங்கிணைக்கிறது. பிழைத்திருத்தம் இதைப் பயன்படுத்தி எளிதாக்கப்படுகிறது mail.debug சொத்து, இது சரிசெய்தலுக்கான விரிவான பதிவுகளை வழங்குகிறது. டோக்கர் போன்ற சூழல்களில் உங்கள் உள்ளமைவைச் சோதிப்பது வெவ்வேறு அமைப்புகளில் பெயர்வுத்திறன் மற்றும் நிலையான முடிவுகளை உறுதி செய்கிறது. இந்த உத்திகள் மூலம், உங்கள் Activiti 6 பணிப்பாய்வுகள் பாதுகாப்புச் சிக்கல்கள் அல்லது இணைப்பு தோல்விகள் இல்லாமல் மின்னஞ்சல்களை திறமையாக அனுப்பும். 🚀
Activiti 6 இல் அஞ்சல் பணிச் சிக்கல்களைத் தீர்ப்பதற்கான மாற்றுத் தீர்வுகள்
Activiti 6 இல் அஞ்சல் பணிகளை உள்ளமைக்க மற்றும் பிழைத்திருத்துவதற்கு மட்டு ஜாவா பின்தள அணுகுமுறையைப் பயன்படுத்துதல்
// Import necessary librariesimport org.activiti.engine.delegate.DelegateExecution;import org.activiti.engine.delegate.JavaDelegate;import javax.mail.*;import javax.mail.internet.*;import java.util.Properties;// Define the MailTaskHandler classpublic class MailTaskHandler implements JavaDelegate {@Overridepublic void execute(DelegateExecution execution) throws Exception {// SMTP server configurationString host = "smtp.gmail.com";String port = "587";String username = "your-email@gmail.com";String password = "your-app-password";// Set mail propertiesProperties props = new Properties();props.put("mail.smtp.host", host);props.put("mail.smtp.port", port);props.put("mail.smtp.auth", "true");props.put("mail.smtp.starttls.enable", "true");// Authenticate using Gmail App PasswordsSession session = Session.getInstance(props, new Authenticator() {protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username, password);}});try {// Prepare the emailMessage message = new MimeMessage(session);message.setFrom(new InternetAddress("your-email@gmail.com"));message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));message.setSubject("Test Mail from Activiti");message.setText("This is a test email triggered by an Activiti workflow.");// Send the emailTransport.send(message);System.out.println("Mail sent successfully!");} catch (MessagingException e) {throw new RuntimeException("Failed to send mail", e);}}}
மேம்படுத்தப்பட்ட பிழைத்திருத்தத்திற்கு சுற்றுச்சூழல்-குறிப்பிட்ட உள்ளமைவைப் பயன்படுத்துதல்
ஸ்பிரிங் application.properties கோப்பு வழியாக Activiti 6 இல் அஞ்சல் பணியை உள்ளமைத்தல்.
# application.propertiesmail.smtp.auth=truemail.smtp.starttls.enable=truemail.smtp.host=smtp.gmail.commail.smtp.port=587mail.smtp.username=your-email@gmail.commail.smtp.password=your-app-password# Enable detailed mail debuggingmail.debug=true// Configure the mail task within the Activiti process model<mailTask id="emailTask" name="Send Email" activiti:to="${recipient}"activiti:subject="Process Update" activiti:html="true"><text>Hello, this is a test email from Activiti!</text></mailTask>
ஆவணப்படுத்தப்பட்ட சூழலில் உள்ளமைவைச் சோதித்தல்
வெவ்வேறு சூழல்களில் Activiti மின்னஞ்சல் பணிகளைத் தனிமைப்படுத்தவும் சோதிக்கவும் டோக்கரைப் பயன்படுத்துதல்
# DockerfileFROM openjdk:11-jdkWORKDIR /appADD activiti-app.war /appEXPOSE 8080CMD ["java", "-jar", "/app/activiti-app.war"]# docker-compose.ymlversion: '3.1'services:activiti:build: .ports:- "8080:8080"environment:- MAIL_SMTP_HOST=smtp.gmail.com- MAIL_SMTP_PORT=587- MAIL_SMTP_USERNAME=your-email@gmail.com- MAIL_SMTP_PASSWORD=your-app-password
மேம்பட்ட பிழைத்திருத்த நுட்பங்களுடன் அஞ்சல் பணி உள்ளமைவை மேம்படுத்துதல்
அஞ்சல் பணிகளை உள்ளமைக்கும் போது செயல்பாடு 6, SMTP அமைப்பில் மட்டும் கவனம் செலுத்துவது இன்றியமையாதது ஆனால் பிழைத்திருத்த கருவிகள் எவ்வாறு பிழைகள் பற்றிய ஆழமான நுண்ணறிவுகளை வழங்க முடியும் என்பதிலும் கவனம் செலுத்த வேண்டும். `java.net.ConnectException: இணைப்பு மறுக்கப்பட்டுவிட்டது` பிழை பொதுவாக SMTP சேவையகத்தை அடைவதைத் தடுக்கும் நெட்வொர்க் அல்லது ஃபயர்வால் சிக்கலைக் குறிக்கிறது. கோரிக்கைகள் சர்வரிலிருந்து சரியாக வெளியேறுகின்றனவா என்பதைச் சரிபார்க்க, பாக்கெட் ஸ்னிஃபர்கள் அல்லது SMTP சோதனைப் பயன்பாடுகள் போன்ற கருவிகளைப் பயன்படுத்துவது குறைவாக விவாதிக்கப்பட்ட மற்றும் முக்கியமான அம்சமாகும். ஃபயர்வால் போர்ட்டைத் தடுக்கிறதா அல்லது டிஎன்எஸ் தெளிவுத்திறன் தோல்வியடைகிறதா என்பதை இந்தக் கருவிகள் அடையாளம் காண முடியும், இது நிறுவன சூழல்களில் பொதுவான சிக்கல்களாகும். 😊
மற்றொரு மேம்பட்ட அணுகுமுறை ஆக்டிவிட்டியின் உள்ளமைக்கப்பட்ட பிழைத்திருத்த அம்சங்களுடன் இணைந்து SLF4J போன்ற பதிவு நூலகங்களைப் பயன்படுத்துகிறது. `mail.debug=true` போன்ற பண்புகள் மூலம் விரிவான பதிவுகளை இயக்குவதன் மூலம், நிர்வாகிகள் அஞ்சல் கையாளுதல் செயல்முறையின் படிப்படியான விவரங்களைப் பிடிக்க முடியும். அங்கீகரிப்பு, செய்தி அசெம்பிளி அல்லது இணைப்பு நிறுவுதல் போன்றவற்றின் போது, பிழை ஏற்படும் இடங்களை தனிமைப்படுத்த இந்த பதிவுகள் கருவியாக இருக்கும். MailHog போன்ற கேலி செய்யப்பட்ட மின்னஞ்சல் சேவையகங்களைக் கொண்ட சோதனைச் சூழல்கள், நிஜ உலக மின்னஞ்சல் தவறுகளுக்கு ஆபத்து இல்லாமல் அஞ்சல் உள்ளமைவுகளைச் செம்மைப்படுத்துவதற்கான சாண்ட்பாக்ஸை வழங்குகிறது.
அடிப்படைச் சரிசெய்தலுக்கு அப்பால், ஜிமெயிலுக்கான OAuth 2.0 போன்ற பாதுகாப்பு நடவடிக்கைகளை ஒருங்கிணைப்பது மிகவும் முக்கியமானது. பயன்பாட்டுக் கடவுச்சொற்களை Google நீக்குவதால், OAuth அங்கீகாரத்திற்கான மிகவும் பாதுகாப்பான, டோக்கன் அடிப்படையிலான அணுகுமுறையை உறுதி செய்கிறது. இதற்கு கூகுள் கிளவுட் ப்ராஜெக்ட்டை அமைக்க வேண்டும் மற்றும் ஜிமெயில் ஏபிஐ இயக்க வேண்டும், ஆனால் இது ஆக்டிவிட்டி பணிப்பாய்வுகளில் அஞ்சல் பணிகளின் நம்பகத்தன்மை மற்றும் பாதுகாப்பை கணிசமாக மேம்படுத்துகிறது. இந்த உத்திகளைச் செயல்படுத்துவது, வளரும் பாதுகாப்புத் தரங்களுக்கு இணங்கும்போது மின்னஞ்சல் செயல்பாட்டை சீராக்க உதவுகிறது. 🚀
Activiti 6 அஞ்சல் பணி உள்ளமைவு பற்றிய பொதுவான கேள்விகள்
- "இணைப்பு மறுக்கப்பட்டது" என்ற பிழை ஏன் ஏற்படுகிறது?
- SMTP சேவையகத்தை அடைய முடியாத போது இந்த பிழை பொதுவாக ஏற்படும். சரியானதை உறுதிப்படுத்தவும் host மற்றும் port ஃபயர்வால் அமைப்புகளை கட்டமைத்து சரிபார்க்கவும்.
- செயல்படுத்துவதன் நோக்கம் என்ன mail.debug=true?
- இது மின்னஞ்சல் செயல்முறையின் விரிவான பதிவுகளை உருவாக்குகிறது, தவறான சான்றுகள் அல்லது இணைப்பு தோல்விகள் போன்ற சிக்கல்களைக் கண்டறிய உதவுகிறது.
- ஆக்டிவிட்டி 6 இல் ஜிமெயில் அங்கீகாரத்திற்காக OAuth 2.0 ஐ எவ்வாறு பயன்படுத்துவது?
- Google Cloud திட்டத்தை அமைக்கவும், Gmail API ஐ இயக்கவும் மற்றும் ஒருங்கிணைக்க Spring Security OAuth போன்ற நூலகத்தைப் பயன்படுத்தவும் OAuth tokens உங்கள் பணிப்பாய்வுக்குள்.
- ஜிமெயிலின் SMTP சேவையகத்தைப் பயன்படுத்தும் போது ஏற்படும் பொதுவான ஆபத்துகள் என்ன?
- செப்டம்பர் 2024க்குப் பிறகு காலாவதியான நற்சான்றிதழ்கள் அல்லது பயன்பாட்டுக் கடவுச்சொற்களைப் பயன்படுத்துதல். இதற்கு மாறுகிறது OAuth பரிந்துரைக்கப்படும் தீர்வு.
- உண்மையான மின்னஞ்சல்களை அனுப்பாமல் அஞ்சல் பணிகளை எவ்வாறு சோதிக்க முடியும்?
- உள்ளூர் SMTP சேவையகத்தை உருவாக்க MailHog போன்ற கருவிகளைப் பயன்படுத்தவும். பாதுகாப்பான சோதனைக்காக இந்த போலி சேவையகத்தை சுட்டிக்காட்ட Activiti ஐ உள்ளமைக்கவும்.
தடையற்ற அஞ்சல் பணி அமைப்பிற்கான முக்கிய குறிப்புகள்
Activiti 6 அஞ்சல் பணி உள்ளமைவுக்கு துல்லியமான அமைப்புகள் தேவை, குறிப்பாக Gmail போன்ற SMTP சேவையகங்களுக்கு. பயன்பாட்டுக் கடவுச்சொற்களை Google நிராகரிப்பதால், OAuth 2.0 மூலம் பாதுகாப்பை உறுதி செய்வது அவசியம். போன்ற பிழைத்திருத்த கருவிகள் mail.debug பதிவுகள் மற்றும் சோதனை சூழல்கள் உள்ளமைவு சவால்களை கடக்க உதவுகின்றன.
இந்த உத்திகளை ஏற்றுக்கொள்வது நம்பகமான ஆட்டோமேஷனை செயல்படுத்துகிறது மற்றும் வளர்ந்து வரும் பாதுகாப்பு தரங்களுக்கு ஏற்றவாறு பணிப்பாய்வுகளை வைத்திருக்கிறது. சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், பயனர்கள் பிழையற்ற செயல்பாடுகளைப் பராமரிக்கலாம் மற்றும் தடையற்ற செயல்முறை தன்னியக்கத்திற்கான எதிர்கால-ஆதார அமைப்புகளை உறுதிப்படுத்தலாம். 🚀
ஆதாரங்கள் மற்றும் குறிப்புகள்
- Activiti 6 இல் உள்ள அஞ்சல் பணி சிக்கல்களை சரிசெய்வது பற்றிய விவரங்கள் StackOverflow பற்றிய விவாதத்தால் ஈர்க்கப்பட்டன. அசல் நூலை இங்கே பார்க்கவும்: StackOverflow - Activiti 6 அஞ்சல் பணி சிக்கல் .
- ஜிமெயில் பாதுகாப்பு புதுப்பிப்புகள் மற்றும் பயன்பாட்டு கடவுச்சொற்களுக்கான மாற்றுகள் பற்றிய தகவல்கள் Google இன் அதிகாரப்பூர்வ ஆதரவு ஆவணத்திலிருந்து பெறப்பட்டது. இங்கே மேலும் அறிக: Google ஆதரவு - பாதுகாப்பு புதுப்பிப்புகள் .
- Gmail SMTP க்காக OAuth 2.0 ஐ ஒருங்கிணைப்பது பற்றிய விவரங்கள் Google Cloud ஆவணத்தில் இருந்து குறிப்பிடப்பட்டுள்ளன. வழிகாட்டியை இங்கே ஆராயுங்கள்: கூகுள் டெவலப்பர்கள் - ஜிமெயில் ஏபிஐ வழிகாட்டி .
- SMTP சோதனை மற்றும் பிழைத்திருத்த பரிந்துரைகள் MailHog ஆல் கோடிட்டுக் காட்டப்பட்ட சிறந்த நடைமுறைகளிலிருந்து மாற்றியமைக்கப்பட்டன. அவர்களின் அதிகாரப்பூர்வ வலைத்தளத்தைப் பார்வையிடவும்: MailHog - SMTP சோதனை .