مشكل ارسال اطلاعات فرم به ايميل

mnds

New Member
با سلام
من براي وب سايتم مي‌خوام يك فرم ورود اطلاعات بسازم تا اطلاعات وارد شده توسط كاربر به ايميلم ارسال بشه. ولي تقريبا چيزي پيدا نكردم كه هيچ ايرادي نگيره. به كمك شما نياز فوري دارم. اگه به صورت خيلي جزء به جزء توضيح بديد ممنون مي‌شم. چون خيلي وارد هم نيستم.
با تشكر فراوان
 

mnds

New Member
من دقيقا نمي‌دونم از اين كد بايد كجا و چه جوري استفاده كنم. اگه بتونيد كامل توضيح بديد ممنون مي‌شم.
فرم خودم رو ارسال مي‌كنم. اگه با توجه به اون توضيح بديد خيلي بهتره.
 

پیوست ها

  • form.zip
    1.6 کیلوبایت · بازدیدها: 22

mosyhey

Member
با سلام
این روش را امتحان کنید و بگویید اجرا می شود یا نه؟
فرم شما را دیدم. مشکلی ندارد. فقط بایستی دستور <form> اصلاح کنید. در ضمن بهتر است با یونیکد کار کنید.
برای توضیح این روش مثالی می زنم. در این مثال ابتدا یک صفحه حاوی فرم باید بسازیم که من با asp نوشته ام. همان صفحه فرم شما که با html نوشته اید هم درست است. این صفحه من با نام form.asp همان طور که میبینید 3 منطقه ورود اطلاعات دارد؛ دو تکست باکس با نام های famil و email و یک تکست اریا با نام note. شما می توانید در صفحه خود هرچند تا که دوست دارید اضافه کنید. در تگ <form> بایستی مکان و مکانیسم ارسال اطلاعات را مشخص کنید؛ که در این مثال اطلاعات با مکانیسم post و به فایلی در همان پوشه که فرم هست به نام send.asp فزستاده می شود.
سورس فایل form.asp:
HTML:
<%@LANGUAGE="VBSCRIPT" CodePage=65001%>
<%Option Explicit%>
<%Session.CodePage="65001"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form action="send.asp" method="post">
نام : <input type="text" name="famil"><br>
ایمیل : <input type="text" name="email"><br>
متن : <textarea name="note"></textarea><br>
<input type="submit">
</form>
</body>
</html>
حالا باید فایل send.asp را بنویسیم. این فایل باید اطلاعات را بگیرد، به ایمیلی که می خواهیم ارسال کند و سپس پیامی بدهد و تشکر کند از کاربر. در خود سورس توضیحاتی داده شده است. تغییراتی که لازم است را اعمال کنید مثلاً در قسمت آدرس ایمیل، آدرس ایمیل خود را وارد کنید.
سورس فایل send.asp:
HTML:
<%
''گرفتن مقادیر فرم
strName = Request.Form("famil")
strEmail = Request.Form("email")
strNote = Request.Form("note")

''تشکیل متن نامه
strText = "Name : " & strName & "<br>E-Mail : " & strEmail & "<br>Note : " & strNote

Set objEmail = CreateObject("CDO.Message")
objEmail.BodyPart.Charset = "utf-8"

''تعیین نام فرستنده نامه
objEmail.From = strName & " <" & strEmail & ">"

''تعیین آدرس ایمیلی که باید نامه به آن برود
objEmail.To = "[email protected]"

''تعیین موضوع نامه
objEmail.Subject = "salam"

''دستورات ارسال نامه
strText = replace(strText,vbCrLf,"<br>")
objEMail.HTMLBody = strText
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1"
objEmail.Configuration.Fields.Update
objEmail.TextBodyPart.Charset = "utf-8"
objEmail.HTMLBodyPart.Charset = "utf-8"
objEmail.Send
Response.Write("با تشکر از شما اطلاعات ارسال شد")
%>
لازم به ذکر است این فایل ها روی سرور اجرا می شوند یا ISS. در ضمن دستورات به ساده ترین حالت نوشته شده است. اگر کار کرد باید بهتر نوشته شود.
 

mnds

New Member
من نمي دونم تنظيمات خاصي براي جايي كه فضاي وب گرفتم لازمه يا نه؟
خيلي گيج شدم. يك علتش هم اينه كه خيلي وارد نيستم خوب. اگه از شبكه دانشگاه با اينترنت كار كنم فرقي مي‌كنه يا نه؟
يه سوال ديگه هم داشتم كه نمي‌تونم از اين شبكه وارد فايل منيجر سايتم بشم. راهي داره يا نه؟
ممنونم از راهنماييهاتون.
 

mnds

New Member
اينجا همه اطلاعات خوبي در مورد اينجور صفحات دادند ولي متاسفانه من نتونستم مطلبي در مورد تنظيماتي كه بايد قبلش انجام بشه پيدا كنم. مثلا نگفتند كه مثلا بايد چه دستوراتي از سرور ساپورت بشه يا براي smtp server بايد چيكار كرد(اصلا چي هست؟) چه قسمتهايي از IE رو بايد تغيير داد؟ مثلا Firewall ؟ با سرور plesk مثلا ميشه يا نه؟ خيلي مشكل دارم.
نمي دونم ميشه يه روز مشكل من هم حل بشه.
 

mosyhey

Member
از آن جایی که فضا گرفتید مگر به شما آدرس کنترل پنل plesk با یوزر و پسورد را به شما نداده اند؟
وقتی وارد شدید در فایل منیجر در یک پوشه داخل httpdocs این دو تا فایل را بگذارید بعد دیگر فکر کنم مشکلی نباشد.
 

mnds

New Member
من با همين كدي كه فرستاده بوديد كار كردم ولي error داد.
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.

نامگذازري انجام شده هم كاملا درست به نظر مي‌رسه.
Error 404 مي‌گيره.
 

mosyhey

Member
عجیب است. این ارور یعنی آن فایل را پیدا نکرده.
حالا یک فایل معمولی html بریزید توی فولدر httpdocs ببینید برای نمایش این هم اشکال گیرد؟ مواظب باشید در فولدر httpsdocs اشتباهی نریزید.
 

m_ziba

Member
سلام.

فایل پیوست رو نگاه کن.

به جای [email protected] آدرس mail خودت روی اون host و به جای Password ، گذرواژه خودت رو بذار. SMTP هم به جای mail.zendehrood.com ، روی host خودت SMTP اون رو بذار(mail.xxxxxx.com)
 

پیوست ها

  • Mail.rar
    19.4 کیلوبایت · بازدیدها: 23

mnds

New Member
من چندين فرم مختلف رو امتحان كردم. خطاهايي كه ميداد رو مي‌نويسم:

The page you are looking for is currently unavailable.
The Web site might be experiencing technical difficulties,
or you may need to adjust your browser settings.

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

There is a problem with the page you are trying to reach and it cannot be displayed.

HTTP 500 - Internal server error
Internet Explorer

اين صفحات رو قبل از اينكه به اينترنت وصل بشم هم روي كامپيوتر اجرا مي‌كردم و خطاي ASP 0177 رو ميداد.

فايل m_ziba رو هم چك كردم. پيغام خطاشو ميذارم.

Server Error in '/' Application.
--------------------------------------------------------------------------------

Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".


<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>


Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.


<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>


از توجه شما سپاسگذارم.
 

mnds

New Member
MSDN براي Error من يك راه حل پيشنهاد داده ولي من متوجه نشدم كه بايد چه كاري انجام بدم. اطلاع ندارم كه اين مشكل به Service Pack هم مربوطه يا نه.
راه حل رو اينجا مي‌ذارم اگه كمك كنيد ممنون ميشم.
To resolve the error, use Regsvr32.exe to register the object that you want to instantiate from your Active Server Pages.

For example, to resolve the sample error that is shown in the "Symptoms" section, type the following commands at a command prompt to register an object called Hostname.dll that is located in the C:\ils folder on the local system:
c:
cd \ils
c:\winnt\system32\regsvr32.exe c:\ils\hostname.dll
If you are successful, a dialog box displays the following message:
DLLRegisterServer in hostname.dll succeeded.
To ensure that the newly registered module is loaded in memory, restart the Web services.
Additional query words: HTTP 500.100 ASP 0177 (0x8007007E)​
 
آخرین ویرایش:

m_ziba

Member
سلام.

شما اول به چند سوال پاسخ بدین:

1- آیا در host مورد نظر email معتبر دارید؟
2- آیا SMTP اون server فعاال هست؟
3- آیا در برنامه همون طور که گفتم SMTP رو تعریف می کنید؟

و 4- آیا موقع تست برنامه به اینترنت وصل هستید یا نه؟
 

wax_village

New Member
السلام عليكم
Dear brothers,
Please help me

In fact I have followed the mentioned instructions, however, the following error has took place once I bush the "submit" button:

Method Not Allowed
The requested method POST is not allowed for the URL /send.asp.


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

Apache/1.3.37 Server at seadawyherbs.com Port 80



the url is
http://www.seadawyherbs.com/Form.html

or

http://www.seadawyherbs.com/Formm.html


I should be so grateful if you reply me asap.
Also, I should be so grateful if you reply me IN ENGLISH because I do not know Persian well.

Thanks in advance
 

mnds

New Member
m_ziba جواب چند تا سوالي كه از من پرسيديد بله هست. من تنظيماتي رو كه توي Outlook بايد انجام بدم تا Email فرستاده بشه رو برايتان مي‌فرستم. تمام تنظيمات بايد به همين شكل باشد وگرنه ايميل نمي فرستد.
اگر ممكن است ايميلتان را براي من ارسال كنيد تا من عكسهايي كه از صفحه Outlook مي‌خواستم بفرستم، بتوانم ارسال كنم.

در ضمن شما مي‌توانيد يك Host مجاني معرفي كنيد كه بتوانم صفحاتم را آنجا چك كنم؟

با سپاس فراوان
 

mnds

New Member
مگه وقتي مي‌خواهيم اطلاعات را از host خودمان بدهيم نبايد تنظيمات به صورت زير باشد؟

<%
Set objMail = Server.CreateObject("CDO.Message")

objMail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
objMail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "http://webmail.mnds.ir"
objMail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")="[email protected]"
objMail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")= "********"


objMail.From = "[email protected]" ' change this to an email address
objMail.To = "[email protected]" ' change this to your email address
objMail.Subject = "Subject" ' change this to your subject
 

m_ziba

Member
سلام
فايل کدی که من اینجا گذاشتم، امتحانش کردم و کار می کنه و به زبان C# هست و دوباره قسمت های لازم رو تکرار می کنم:
کد:
System.Web.Mail.MailMessage mm=new System.Web.Mail.MailMessage();
			mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
			mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "[email protected]" );
			mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password" );

کد:
System.Web.Mail.SmtpMail.SmtpServer="webmail.mnds.com";
				System.Web.Mail.SmtpMail.Send(mm);

اطلاعات لازم رو می تونيد همين جا هم بگذاريد اما email من هم اينه: [email protected]
 
آخرین ویرایش:

mnds

New Member
با سلام و تشكر فراوان از تمام كساني كه براي پاسخ به سوال من وقت گذاشتند.
خوشبختانه مشكل ارسال اطلاعات من حل شد كه تا چند روز ديگر برنامه كامل را در همين جا قرار مي‌دهم. ولي نتوانستم متن فارسي را كه ارسال كردم درست دريافت كنم. يعني به صورت ؟؟؟؟؟؟؟؟؟؟ دريافت مي‌شود.
اين كار را هم انجام دادم ولي جواب نداد.
<% @ Language="VBScript" CodePage="65001"%>
<%Session.CodePage="65001"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 

mosyhey

Member
درصفحه ای هم که ؟؟؟؟؟؟؟؟؟؟ می بینید انکودینگ را utf-8 کرده اید و باز خراب است؟
 

جدیدترین ارسال ها

بالا