الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أنشئ فورم بريدي؟

بدأه JavaPorgrammer في 26 سبتمبر 2010 · 7 رد · 759 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

يا إخوة لو سمحتم ، كيف أستطيع عمل فورم بريدي من خلاله يكتب لي العميل رسالة ويكتب عنوان بريده الإليكتروني ، ثم بعدها يرسل الفورم محتويات الرسالة إلى بريدي الإليكتروني.؟

وجدت موضوع يشرح طريقة قريبة من ما أردت ،، ولكن أرجو المزيد من التوضيح .. لمن كان عنده وقت لذلك ..

وأعتذر مقدما وبشدة إن كان سؤالي بدائيا :blush:

رابط الموضوع : http://www.roseindia.net/struts/hibernate-spring/send-mail.shtml

شاكر ومقدر للجميع .

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 26 سبتمبر 2010 في 01:58

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#2

يا إخوة ..

حاولت محاولة ولكن لم تفلح !

الفكرة هي : أن يرسل العميل من موقعي على إيميلي الشخصي.

وهذه محاولاتي ، أرجو التصحيح إن كان هناك خطأ ما :

صفحات الـ JSF :

send.jsp-1

2- success.jsp

3- fail.jsp

-----------------------------------------------------------------

الفئة:

mail.java

------------------------------------------------------------------

1- send.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>


<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        <body>
            <h1><h:outputText value="Hello to send Email to me: "/></h1>
            <h:form>
                <h:panelGrid columns="2">
                    <h:outputText value="Your email: "/>
                    <h:inputText id="_from" value="#{mail1.from}" required="true"
                                 size="30">
                        <f:validateLength minimum="8" maximum="30"/>
                    </h:inputText>
                    <h:outputText value="Your Message: "/>
                    <h:inputTextarea id="msg" cols="30" rows="8" required="true">
                        <f:validateLength minimum="1"/>
                    </h:inputTextarea>
                    <h:panelGroup/>
                    <h:panelGroup id="buttons">
                        <h:commandButton type="submit" value="submit" action="#{mail1.sendEmail}"/>
                        <h:commandButton type="reset" value="Reset"/>
                    </h:panelGroup>
                    <h:panelGroup><h:message for="_form" showSummary="true" showDetail="false" style="color:red;"/></h:panelGroup>
                    <h:panelGroup>
                        <h:message for="msg" showSummary="true" showDetail="false" style="color:red;"/>
                    </h:panelGroup>
                </h:panelGrid>
            </h:form>
        </body>
    </html>
</f:view>

2-success.jsp

<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        <body>
            <h1><h:outputText value="Hello ... It is run!"/></h1>
        </body>
    </html>
</f:view>

3- fail.jsp

<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        <body>
            <h1><h:outputText value="not Run!"/></h1>
        </body>
    </html>
</f:view>

3- managed bean : mail.java

package JMail;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;


public class mail {
    private final String _to = "myEmail";
    private final String smtpServer = "smtp.myWebsit.com";
    private  String _from ;
    private String msg ,subject;
    private final String fail_msg  = "fail";
    private final String suc = "success";
private final String password = "My email [in my website] password";

    /** Creates a new instance of mail */
    public mail() {
    }

    /**
     * @return the _to
     */
    public String getTo() {
        return _to;
    }

    /**
     * @return the smtpServer
     */
    public String getSmtpServer() {
        return smtpServer;
    }

    /**
     * @return the _from
     */
    public String getFrom() {
        return _from;
    }

    /**
     * @return the msg
     */
    public String getMsg() {
        return msg;
    }

    /**
     * @param msg the msg to set
     */
    public void setMsg(String msg) {
        this.msg = msg;
    }

    /**
     * @return the subject
     */
    public String getSubject() {
        return subject;
    }

    /**
     * @param subject the subject to set
     */
    public void setSubject(String subject) {
        this.subject = subject;
    }

    /**
     * here method that send email
     */
    public String sendEmail(){
    String action ;
        try{
    Properties props = System.getProperties();
     props.put("mail.transport.protocol", "smtp" );
              props.put("mail.smtp.starttls.enable","true" );
              props.put("mail.smtp.host",smtpServer);
              props.put("mail.smtp.auth", "true" );
              Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props, auth);
Message mssg = new MimeMessage(session);
              // -- Set the FROM and TO fields --
              mssg.setFrom(new InternetAddress(_from));
              mssg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(_to, false));
              mssg.setSubject(subject);
              mssg.setText(msg);
              // -- Set some other header information --
              mssg.setHeader("MyMail", "Mr. XYZ" );
              mssg.setSentDate(new Date());
              // -- Send the message --
              Transport.send(mssg);
              System.out.println("Message sent to"+_to+" OK." );
              return suc;


    }catch(Exception ex){
          System.out.println("Exception "+ex);
          return fail_msg;

    }
    }

    /**
     * @param from the _from to set
     */
    public void setFrom(String from) {
        this._from = from;
    }
    private class SMTPAuthenticator extends javax.mail.Authenticator {
        @Override
        public PasswordAuthentication getPasswordAuthentication() {
            String username =  "My Email ID";

            return new PasswordAuthentication(username, password);
        }
  }

}

وعدلت في face-config.xml

 <navigation-rule>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/success.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>fail</from-outcome>
            <to-view-id>/fail.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#3

:unsure:

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#4

ما هي رسالة الخطأ ... أو المشكله ؟

#5

هذا الخطأ:

javax.servlet.ServletException: java.lang.Exception: Could not send email.
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

بالنسبة للـ mail server : smtp.gmail.com

- استخدم ايميل gmail للإرسال .

وفقك الله.

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 28 سبتمبر 2010 في 02:42

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#6

الأخ هويدي ،، أنا جربته بصفحات jsp باستخدام use bean ،، "أقصد من دون JSF و face-config.xml" واشتغلت معاي ، وأرسل الايميل بالفعل!

ياترا وين الخطا؟ :wacko:

شاكر لك تفاعلك معي :blush:

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#7

أولا... طول ما أنت في مرحلة التطوير ... لا تفعل شئ مثل هذا أبدا :

catch(Exception ex){
      	System.out.println("Exception "+ex);
      	return fail_msg;

	}

بل إفعل :

catch(Exception ex){
	  ex.printStackTrace();
	  return fail_msg;
}

قمت ببعض التعديلات ... و هو يعمل الأن ...

التعديلات تمت على send.jsf و على mail.java

send.jsf :

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<f:view>
	<html>
    	<head>
        	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        	<title>JSP Page</title>
    	</head>
    	<body>
        	<h1><h:outputText value="Hello to send Email to me: "/></h1>
        	<h:form>
            	<h:panelGrid columns="2">
                	<h:outputText value="Your email: "/>
                	<h:inputText id="_from" value="#{mail1.from}" required="true" size="30">
                    	<f:validateLength minimum="8" maximum="30"/>
                	</h:inputText>
                	<h:outputText value="To email: "/>
                	<h:inputText id="to" value="#{mail1.to}" required="true" size="30">
                    	<f:validateLength minimum="8" maximum="30"/>
                	</h:inputText>
                	<h:outputText value="Your subject: "/>
                	<h:inputText id="subject" value="#{mail1.subject}" required="true" size="30">
                    	<f:validateLength minimum="1" maximum="30"/>
                	</h:inputText>
                	<h:outputText value="Your Message: "/>
                	<h:inputTextarea id="msg" cols="30" rows="8" required="true" value="#{mail1.msg}">
                    	<f:validateLength minimum="1"/>
                	</h:inputTextarea>
                	<h:panelGroup/>
                	<h:panelGroup id="buttons">
                    	<h:commandButton type="submit" value="submit" action="#{mail1.sendEmail}"/>
                    	<h:commandButton type="reset" value="Reset"/>
                	</h:panelGroup>
                	<h:panelGroup><h:message for="_form" showSummary="true" showDetail="false" style="color:red;"/></h:panelGroup>
                	<h:panelGroup>
                    	<h:message for="msg" showSummary="true" showDetail="false" style="color:red;"/>
                	</h:panelGroup>
            	</h:panelGrid>
        	</h:form>
    	</body>
	</html>
</f:view>

mail.java:

package JMail;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class mail
{
	private final String smtpServer = "smtp.gmail.com";	
	private final String senderPassword = "*********";		// << change this
	private final String FAIL_MSG = "fail";
	private final String SUCCESS = "success";

	// form variables
	private String msg, subject, to, from = "myemail@gmail.com"; // <<< change this

	public String getFrom()
	{
		return from;
	}

	public void setFrom(String from)
	{
		this.from = from;
	}

	public String getMsg()
	{
		return msg;
	}

	public String getTo()
	{
		return to;
	}
	public void setTo(String to)
	{
		this.to = to;
	}
	public String getSmtpServer()
	{
		return smtpServer;
	}
	public void setMsg(String msg)
	{
		this.msg = msg;
	}

		public String getSubject()
	{
		return subject;
	}

	public void setSubject(String subject)
	{
		this.subject = subject;
	}

	public String sendEmail()
	{
		String action;
		try
		{
			Properties props = System.getProperties();
			props.put("mail.transport.protocol", "smtp");
			props.put("mail.smtp.starttls.enable", "true");
			props.put("mail.smtp.host", smtpServer);
			props.put("mail.smtp.auth", "true");
			Authenticator auth = new SMTPAuthenticator();
			Session session = Session.getInstance(props, auth);
			Message mssg = new MimeMessage(session);
			// -- Set the FROM and TO fields --
			mssg.setFrom(new InternetAddress(from));
			mssg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
			mssg.setSubject(subject);
			mssg.setText(msg);
			// -- Set some other header information --
			mssg.setHeader("MyMail", "Mr. XYZ");
			mssg.setSentDate(new Date());
			// -- Send the message --
			Transport.send(mssg);
			System.out.println("Message sent to: " + to + " OK.");
			return SUCCESS;

		} catch (Exception ex)
		{
			ex.printStackTrace();
			//System.out.println("Exception " + ex);
			return FAIL_MSG;

		}
	}


	private class SMTPAuthenticator extends javax.mail.Authenticator
	{
		@Override
		public PasswordAuthentication getPasswordAuthentication()
		{
			String username = getFrom();
			return new PasswordAuthentication(username, senderPassword);
		}
	}

}
#8

الله يسعدك يا أخ هويدي ،، أينما كنت!

اشتغل معاي الكود .. :happy:

شاكر ومقدر لشخصك الكريم.

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

مواضيع مشابهة