PDA

View Full Version : مشکل در ارسال ایمیل



reza_shnia
دوشنبه 29 تیر 1388, 19:08 عصر
سلام
من یک هاست در رادکام دارم و می خواهم با اون ایمیل بفرستم.
تا جایی که من تحقیق کردم دو روش برای ارسال ایمیل با asp متداوله :
1- استفاده از کامپوننت AspEmail (http://barnamenevis.org/forum/showpost.php?p=615669&postcount=2)
2- استفاده از کامپوننت cdosys (http://www.w3schools.com/asp/asp_send_email.asp)

ولی مشکل من اینکه در "رادکام" AspEmail (http://barnamenevis.org/forum/showpost.php?p=615669&postcount=2) نصب نیست،و من با این پیغام مواجه می شم :
Server.CreateObject Failed ، بنابراین روش اول منتفیه

اما روش دوم
من به عنوان نمونه این کد رو استفاده کردم :


DIM myMail
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO"
myMail.From="rezania@yahoo.com"
myMail.To="shaa@gmail.com"
myMail.TextBody="This is a message."
myMail.Send
set myMail=nothing

ولی متاسفانه با این پیغام مواجه شدم :
The "SendUsing" configuration value is invalid

دوستان لطفا راهنمایی کنن که مشکل از کجاست؟؟؟
آیا روش دیگه ای هم برای ارسال ایمیل وجود داره؟مثلا با smtp

متشکرم

aryaei2000
دوشنبه 29 تیر 1388, 19:44 عصر
سلام دوست عزیز
من هم مشکلی مشابه مشکل شما برام پیش اومد
ولی خودم یه کد نوشتم که کار میکنه.
امتحان کن ببین جواب میده
پیش از اجرای کد متغیر های زیر رو تعریف کن

mailhost = آدرس SMTP
smtpid = نام کاربری smptp
smptppass = رمز عبور smtp
subject = موضوع ایمیل
message = متن ایمیل
sendto = آدرس گیرنده
sendfrom = آدرس فرستنده


Server.ScriptTimeout = 200
On Error Resume Next
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
If not mailHost = Empty then
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
With objCDOSYSCon
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailHost
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
If not SMTPID = Empty then
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTPID
.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTPPAss
End If
.Fields.Update
End With
Set objCDOSYSMail.Configuration = objCDOSYSCon
End If
With objCDOSYSMail
.From = sendFrom
.Sender = sendFrom
'.BodyPart.CharSet = "Windows-1252"
'.HTMLBodyPart.charset = "Windows-1252"
.To = "<" & sendTo & ">"
.Subject = subject
If isHTML then
.HTMLBody = message
Else: .TextBody = message
End If
.Send
End With
Set objCDOSYSMail = Nothing
On Error Goto 0

موفق باشی

reza_shnia
دوشنبه 29 تیر 1388, 21:59 عصر
سلام دوست من
از اینکه این قدر زود جوابم رو دادی ممنونم.:بوس:

آقا باز هم ایمل نفرستاد.:عصبانی++:
این دفعه اروری که می ده توضیح نداره.فقط کده :


error '80040211'
/test2/email.asp, line 115
من تو کد شما ، متغییر ها رو این جوری مقدار دهی کردم :


mailhost = "vadieh.net"
smtpid = "info@vadieh.net"
smptppass = "email password"
subject = "subject"
message = "testing email"
sendto = "shakiba@gmail.com"
sendfrom = "info@vadieh.net"

یک مطلبی که لازمه بهش اشاره کنم اینه که، من برای امتحان پسورد اتصال به mailhost رو عوض کردم (یعنی پسورد غلط وارد کردم)، ولی اروو تغییری نکرد:متعجب:

بعد تو یک آزمایش دیگه متغییر mailhost رو به این شکل مقدار دهی کردم "mailhost = "smtp.vadieh.net ولی این دفعه این اروو رو داد : The transport failed to connect to the serve

احتمالا اشکال در نوع مقدار دهی متغییر ها هست.
لطفا راهنمایی کنید چیکار کنم؟

aryaei2000
دوشنبه 29 تیر 1388, 22:20 عصر
mailhost رو اینجوری مقدار دهی کن
mail.vadieh.net
موفق باشی

reza_shnia
دوشنبه 29 تیر 1388, 22:34 عصر
امتحان کردم ولی نشد:ناراحت:
بنظرت مشکل از کجاست؟

reza_shnia
سه شنبه 30 تیر 1388, 16:09 عصر
بالاخره مشکل من حل شد:لبخند:

با این کد که از پشتیبانی رادکام گرفتم مشکلم حل شد.


sTo = "MyEmail@gmail.com"
sFrom = "info@domain.ir"
sSubject = "test Subject"
sMailServer = "mail.domain.ir"
sBody = "test body mail"


Set objMail = Server.CreateObject("CDO.Message")
Set objConf = Server.CreateObject("CDO.Configuration")
Set objFields = objConf.Fields

With objFields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = sMailServer
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "info@domain.ir"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "My EMail Password"
.Update
End With

With objMail
Set .Configuration = objConf
.From = sFrom
.To = sTo
.Subject = sSubject
.TextBody = sBody
End With

Err.Clear
on error resume next

objMail.Send
if len(Err.Description) = 0 then
mes = " Message sent to " + sTo
mes = mes + " TESTS COMPLETED SUCCESSFULLY!"
IsSuccess = true
else
mes = " " + Err.Description + " TESTS FAILED!"
end if
Set objFields = Nothing
Set objConf = Nothing
Set objMail = Nothing

aryaei2000
سه شنبه 30 تیر 1388, 19:55 عصر
مشکل کد من از کجا بود؟
بگو بدونم

reza_shnia
پنج شنبه 01 مرداد 1388, 00:30 صبح
خودمم هم نمی دونم. ولی با این وجود ازت ممنونم ، چون کد شما راهنمایی خوبی بود.

راستی یک نکته
اگر کسی از کد بالا خواست استفاده بکنه ، این تگ رو قبل از Send بهش اضافه کنه تا با فارسی مشکلی نداشته باشه:


objMail.BodyPart.Charset = "utf-8"

ghafory86
پنج شنبه 01 مرداد 1388, 00:53 صبح
سالام شرمند اما چون خیلی فوری بود برام اینجا مطرح کردم .
چرا نمیتونم صفحه وب جدید اضافه کنم .

aryaei2000
پنج شنبه 01 مرداد 1388, 10:16 صبح
سالام شرمند اما چون خیلی فوری بود برام اینجا مطرح کردم .
چرا نمیتونم صفحه وب جدید اضافه کنم .
دوست عزیز
اولا سوالتون رو در یک تاپیک جدید باز کنید
ثانیا سوالتون رو واضح تر بپرسید.
موفق باشید.

bahram_plus
دوشنبه 09 شهریور 1388, 12:44 عصر
سلام


'new
Const cdoSendUsingMethod="http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort= 2
Const cdoSMTPServer="http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort="http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout="http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate="http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic=1
Const cdoSendUserName="http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword="http://schemas.microsoft.com/cdo/configuration/sendpassword"

Dim objConfig ' As CDO.Configuration
Dim objMessage ' As CDO.Message
Dim Fields ' As ADODB.Fields

' Get a handle on the config object and it's fields
Set objConfig = Server.CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields

' Set config fields we care about
With Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "mail.test.ir"
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPConnectionTimeout) = 60
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = "test@test.ir"
.Item(cdoSendPassword) = "tset"

.Update
End With

Set objMessage = Server.CreateObject("CDO.Message")

Set objMessage.Configuration = objConfig

With objMessage
.BodyPart.Charset = "utf-8"
.To = emailto
.From = emailfrom
.Subject = EmailSubject
.HTMLBody = EmailBody
End With

If emailcc <> "0" Then objMessage.Cc = emailcc
If emailbcc <> "0" Then objMessage.Bcc = emailbcc

objMessage.Send

Set Fields = Nothing
Set objMessage = Nothing
Set objConfig = Nothing
'end new

اون تگی که ذکر شده بود برای فارسی کردن اضافه کردم ولی بازم در ایمیل کارکتر های فارسی خراب نمایش داده میشه

bahram_plus
شنبه 14 شهریور 1388, 14:47 عصر
کسی نیست جواب بده؟!:عصبانی++:

aryaei2000
شنبه 14 شهریور 1388, 20:01 عصر
از کد زیر هم استفاده کردید؟


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

bahram_plus
چهارشنبه 18 شهریور 1388, 16:29 عصر
از کد زیر هم استفاده کردید؟


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />




این کد رو که فرمودید گذاشتم درست نمیشه.
من یه فرم تو یه صفحه درست کردم،بعد توی یه صفحه asp دیگه اطلاعات فرم فرا خونده میشه و همون اطلاعات رو ایمیل میکنه. outlook این ایمیل رو(کارکتر های فارسی) رو درست نمیاره.
مرسی

bahram_plus
چهارشنبه 25 شهریور 1388, 09:26 صبح
دوستان عزیز کسی نیست کمک کنه؟:عصبانی++:

kashaneh
پنج شنبه 02 مهر 1388, 12:42 عصر
دوست عزیز کد زیر را امتحان کنید :


objMail.BodyPart.charset = "unicode-1-1-utf-8";

در صورتیکه نتیجه نداد در ابتدای کدهای صفحه ارسال ایمیل خود کد زیر را درج و امتحان کنید :


<% Session.CodePage = 65001 %>

موفق باشی