2010-06-02 17 views
14

मैं नीचे दिए गए कोड के साथ काम करने की कोशिश कर रहा हूँ:जावामेल के साथ उपयोग के लिए मैं मेल सर्वर को कैसे कॉन्फ़िगर कर सकता हूं?

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
import javax.mail.*; 
import javax.mail.internet.*; // important 
import javax.mail.event.*;  // important 
import java.net.*; 
import java.util.*; 

public class servletmail extends HttpServlet { 
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter out=response.getWriter(); 
     response.setContentType("text/html"); 
     try { 
      Properties props=new Properties(); 
      props.put("mail.smtp.host","localhost"); // 'localhost' for testing 
      Session session1 = Session.getDefaultInstance(props,null); 
      String s1 = request.getParameter("text1"); //sender (from) 
      String s2 = request.getParameter("text2"); 
      String s3 = request.getParameter("text3"); 
      String s4 = request.getParameter("area1"); 
      Message message =new MimeMessage(session1); 
      message.setFrom(new InternetAddress(s1)); 
      message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(s2,false)); 
      message.setSubject(s3); 
      message.setText(s4);   
      Transport.send(message); 
      out.println("mail has been sent"); 
     } catch(Exception ex) { 
      System.out.println("ERROR....."+ex); 
     } 
    } 
} 

मैं mail.jar और activation.jar उपयोग कर रहा हूँ। लेकिन मैं समझ नहीं पा रहा हूं कि मुझे इसे मेल सर्वर से कैसे कॉन्फ़िगर करना चाहिए। मुझे किस मेल सर्वर का उपयोग करना चाहिए? क्या मैं उपरोक्त कोड का उपयोग कर एक ईमेल भेज सकता हूं? मेल सर्वर की आवश्यकताएं क्या हैं? मुझे इसे कैसे कॉन्फ़िगर करना चाहिए?

उत्तर

22

प्रारंभ करने के लिए, आपको SMTP server की आवश्यकता है। ईमेल भेजने में सक्षम होना आवश्यक है। वेबसाइट की सेवा करने में सक्षम होने के लिए आपको एक HTTP सर्वर की आवश्यकता होती है। आपके पास स्पष्ट रूप से पहले से ही एक HTTP सर्वर है (servletcontainer के साथ), लेकिन आपके पास अभी तक एक SMTP सर्वर कॉन्फ़िगर नहीं है।

आप अपने मौजूदा ईमेल खाते से जुड़े एसएमटीपी सर्वर का उपयोग कर सकते हैं, जैसे कि आपके आईएसपी या जीमेल, याहू आदि जैसे सार्वजनिक मेलबॉक्स। आप उनके दस्तावेज में एसएमटीपी कनेक्शन विवरण पा सकते हैं। आपको आमतौर पर होस्टनाम और पोर्ट नंबर जानने की आवश्यकता है। उपयोगकर्ता नाम/पासवर्ड आपके ईमेल खाते के समान ही हैं।

होस्ट नाम और पोर्ट संख्या तो JavaMail के लिए SMTP गुण के रूप में स्थापित किया जाना चाहिए:

properties.put("mail.smtp.auth", "true"); 
Authenticator authenticator = new Authenticator() { 
    protected PasswordAuthentication getPasswordAuthentication() { 
     return new PasswordAuthentication("yourusername", "yourpassword"); 
    } 
}; 

तो फिर तुम मिल सकता है: इस प्रकार

Properties properties = new Properties(); 
properties.put("mail.transport.protocol", "smtp"); 
properties.put("mail.smtp.host", "smtp.example.com"); // smtp.gmail.com? 
properties.put("mail.smtp.port", "25"); 

उपयोगकर्ता नाम/पासवर्ड एक Authenticator में इस्तेमाल किया जाना चाहिए मेल सत्र इस प्रकार है:

Session session = Session.getDefaultInstance(properties, authenticator); 

अपने मैं के खाते के साथ सपा या सार्वजनिक मेलबॉक्स, आप फिर भी ईमेल आप निश्चित अंतराल पर भेजने के लिए अनुमति हो की राशि में ईमेल के From क्षेत्र में अपने स्वयं के पते का उपयोग कर और आमतौर पर यह भी करने के लिए प्रतिबंधित कर रहे हैं। आप इस के आसपास प्राप्त करना चाहते हैं, तो आप अपने खुद के एसएमटीपी सर्वर, उदाहरण के Apache James के लिए है, जो जावा आधारित है, या Microsoft Exchange और इतने पर स्थापित करने की आवश्यकता।

सब के बाद, मैं सुझाव है कि आप तो एक JavaMail tutorial के माध्यम से अपने आप को प्राप्त करने के लिए है कि आप एक बेहतर समझ पाने के।

+0

ठीक है ... thnaks .. – simplyblue

+0

हाय @ बालससी मैंने मेल सर्वर को उल्लिखित कॉन्फ़िगर किया है, लेकिन मुझे 'javax.mail मिल रहा है। सैंडफेल अपवाद: अमान्य पता; नेस्टेड अपवाद है: \t com.sun.mail.smtp.SMTPAddressFailedException: 450 4.1.1 <[email protected]>: प्राप्तकर्ता का पता खारिज कर दिया गया: आभासी मेलबॉक्स तालिका ' अपवाद में अज्ञात उपयोगकर्ता। यह ठीक काम कर रहा है, तो मैं एक ही डोमेन पर मेल भेज रहा हूँ। कोई उपाय? \t ' – amarmishra

संबंधित मुद्दे

 संबंधित मुद्दे