2011-11-01 14 views
6

से मेल भेजना मैं टॉमकैट 6 का उपयोग कर वेब प्रोजेक्ट पर काम कर रहा हूं क्योंकि मेरे वेबसर्वर और जेएसपी फ्रंटेंड के रूप में है। मैं वेब सर्वर से एक ईमेल खाते में एक मेल भेजना चाहता हूं। इसे कैसे प्राप्त किया जा सकता है?अपाचे टॉमकैट

शुरू करने के लिए यहाँ JSP में मेरी रूप है:

<form name="forgotpassword" onsubmit="return valid()">  
    <table> 
    <tr> 
     <td>Enter Employee ID</td> 
     <td><input type="text" name="emp_id" size="50"/></td> 
    </tr> 
    <tr> 
     <td>Enter Your Email Address</td> 
     <td><input type="text" name="mailid" size="50"/></td> 
    </tr> 
    <tr> 
     <td><input type="submit"style="margin-left:100px" name="forgot" value="SUBMIT">&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" name="cancel" value="RESET"/></td> 
    </tr> 
    </table> 
</form> 
+0

यह "अनुप्रयोग सर्वर", नहीं "वेब सर्वर" और कहा जाता है सब नहीं "मेल सर्वर" :-) – Lachezar

+0

@Lucho के सबसे: टॉमकैट एक एप्लीकेशन सर्वर नहीं है। यह एक साधारण सर्वलेट कंटेनर है। – BalusC

+0

http://www.tomcatexpert.com/blog/2010/06/09/tomcat-application-server – Lachezar

उत्तर

13

का उपयोग Java-Mail API.

  • JSP से आवश्यक जानकारी के ले लो,
  • पोस्ट यह
  • आह्वान सेवा विधि सर्वलेट को भेजने के लिए सर्वलेट
  • से मेल मेल भेजने के लिए Java Mail API का उपयोग करें रोम सेवा विधि, a quick example
+0

इसके अलावा, आपको [यहां] और अधिक जानकारी मिल सकती है (http://cs-sharenotes.blogspot.ca/2016 /02/how-connect-gmail-javamail-api.html) –

1

MailToURLConnection का उपयोग करके यह सबसे आसान तरीका है। कोई अतिरिक्त पुस्तकालय की आवश्यकता नहीं है।

public static void sendMail(String from, String to, String subject, String body, String[] headers) throws IOException { 
    System.setProperty("mail.host", "localhost"); 

    URL u = new URL("mailto:"+to); 
    MailToURLConnection con = (MailToURLConnection)u.openConnection(); 
    OutputStream os = con.getOutputStream(); 
    OutputStreamWriter w = new OutputStreamWriter(os); 

    DateFormat df = new SimpleDateFormat("E, d MMM yyyy H:mm:ss Z"); 
    Date d = new Date(); 
    String dt = df.format(d); 
    String mid = d.getTime()+from.substring(from.indexOf('@')); 

    w.append("Subject: "+subject+"\r\n"); 
    w.append("Date: " +dt+ "\r\n"); 
    w.append("Message-ID: <"+mid+ ">\r\n"); 
    w.append("From: "+from+"\r\n"); 
    w.append("To: <"+to+">\r\n"); 
    if(headers!=null) { 
     for(String h: headers) 
     w.append(h).append("\r\n"); 
    } 
    w.append("\r\n"); 

    w.append(body.replace("\n", "\r\n")); 
    w.flush(); 
    w.close(); 
    os.close(); 
    con.close(); 
} 
3

यह ठीक काम करता है (जीमेल उदाहरण):

import java.util.Properties; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

public class SendMail { 

    public static void main(String[] args) { 

     final String username = "your_usename_goes_here"; 
     final String password = "your_password_goes_here"; 

     Properties props = new Properties(); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.port", "587"); 

     Session session = Session.getInstance(props, 
      new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication(username, password); 
      } 
      }); 

     try { 

      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress("[email protected]")); 
      message.setRecipients(Message.RecipientType.TO, 
       InternetAddress.parse("[email protected]")); 
      message.setSubject("A testing mail header !!!"); 
      message.setText("Dear Mail Crawler," 
       + "\n\n No spam to my email, please!"); 

      Transport.send(message); 

      System.out.println("Done"); 

     } catch (MessagingException e) { 
      throw new RuntimeException(e); 
     } 
    } 
} 
+0

बढ़िया काम किया! एक एमएस ओ 365 एसएमटीपी सर्वर का इस्तेमाल किया, यह सुनिश्चित किया कि प्रेषण पता O365 पर एक उपनाम या ईमेल उपयोगकर्ता था, और यह तुरंत काम करता था। बहुत बढ़िया! –

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