PDA

View Full Version : چگونگي ارسال ايميل در جنگو



arman54
شنبه 04 مهر 1394, 00:06 صبح
سلام ...
توي IDE پايتون وقتي با استفاده از from smtplib import SMTP_SSL ايميل ميفرستم هيچ مشكلي نيست و ايميل ارسال ميشه . ولي وقتي همين دستورات رو ميبرم توي جنگو ايميل ارسال نميشه . چرا؟

n.nowroozi
شنبه 04 مهر 1394, 12:58 عصر
سلام ...
توي IDE پايتون وقتي با استفاده از from smtplib import SMTP_SSL ايميل ميفرستم هيچ مشكلي نيست و ايميل ارسال ميشه . ولي وقتي همين دستورات رو ميبرم توي جنگو ايميل ارسال نميشه . چرا؟
تنظیمات ایمیل رو باید توی setting خود جنگو انجام بدی

arman54
شنبه 04 مهر 1394, 13:23 عصر
تنظيماتش رو انجام دادم ولي بازم نشد. ارورش ميگه Connection refused

n.nowroozi
شنبه 04 مهر 1394, 19:58 عصر
تنظيماتش رو انجام دادم ولي بازم نشد. ارورش ميگه Connection refused

بزار ستینگ رو

arman54
شنبه 04 مهر 1394, 23:01 عصر
# Send Email ...
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'


EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.chmail.ir'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'username@chmail.ir'
EMAIL_HOST_PASSWORD ='password'

n.nowroozi
یک شنبه 05 مهر 1394, 09:18 صبح
این که درسته
ارسالش رو از send_mail خود جنگو استفاده میکنی؟

arman54
یک شنبه 05 مهر 1394, 23:11 عصر
ن ...
من يه ايميل توي جيميل دارم و يكي توي chmail. در حالت عادي وبدون جنگو و فقط داخل خود پايتون و با استفاده از smtplib ميتونم به راحتي از هركدوم يكي از ايميلها به اون يكي ايميل ارسال كنم ولي وقتي كه همين دستورات رو داخل views جنگو ميبرم كار نميكنن.

n.nowroozi
دوشنبه 06 مهر 1394, 11:26 صبح
ن ...
من يه ايميل توي جيميل دارم و يكي توي chmail. در حالت عادي وبدون جنگو و فقط داخل خود پايتون و با استفاده از smtplib ميتونم به راحتي از هركدوم يكي از ايميلها به اون يكي ايميل ارسال كنم ولي وقتي كه همين دستورات رو داخل views جنگو ميبرم كار نميكنن.
اروری که send_mail میده رو بزار با کدت

HackNetProg
دوشنبه 06 مهر 1394, 16:40 عصر
اینو تویه کدهام پیدا کردم داشت خاک میخورد فک کنم خوشحال میشه ازش استفاده کنید ;)

قسمتی از views.py


from django.shortcuts import render,get_list_or_404,get_object_or_404
from django.contrib import messages
from django.core.mail import send_mail
from django.template.context import RequestContext
from django.conf import settings
from django.views.generic import DetailView, ListView
from .models import Store, UserComment
from .forms import UserCommentForm


from myproject.email_info import message, subject



def detailview(request,pk):

lastest_comment_list=UserComment.objects.filter(co mment_on_product_id=pk)
selected_object=get_object_or_404(Store,pk=pk)
context={'lastest_comment_list':lastest_comment_li st,'selected_object':selected_object}
form =UserCommentForm(request.POST or None)
if form.is_valid():
form.instance.comment_on_product_id_id= selected_object.product_id
save_it=form.save(commit=False)
save_it.save()
ton=[save_it.user_name]
send_mail(subject, message, settings.EMAIL_HOST_USER,ton, fail_silently=True)
messages.success(request, 'Thanck u . you have been registered!')

return render(request,'details.html',locals())




قسمتی از settings.py


#sent email
from .email_info import EMAIL_HOST, EMAIL_HOST_PASSWORD, EMAIL_HOST_USER, EMAIL_PORT, EMAIL_USE_TLS
EMAIL_USE_TLS=EMAIL_USE_TLS
EMAIL_PORT=EMAIL_PORT
EMAIL_HOST_USER=EMAIL_HOST_USER
EMAIL_HOST_PASSWORD=EMAIL_HOST_PASSWORD
EMAIL_HOST=EMAIL_HOST




و در نهایت فایلی به نامemail_info.py که دستی ایجاد کردم :


EMAIL_USE_TLS=True
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT =587
EMAIL_HOST_USER="ایمیلتون"
EMAIL_HOST_PASSWORD =پسوردتون"


subject='thank u . you have been registerd!'
message="this is the message"

arman54
دوشنبه 06 مهر 1394, 22:33 عصر
اين كد:



if request.method == 'POST':
try:
message='Name of User : '+request.POST['name']+'\n\n\n'+'Subject : '+request.POST['subject']+'\n\n'+request.POST['message']+'\n\n\n'+'Email Address : '+request.POST['email'] send_mail(request.POST['subject'], message,from_email, to_email)
return render(request,'contactform.html',{'send':request. POST['name']})
except: return render(request,'contactform.html',{'fail':request. POST['name']})
else:
return
render(request,'contactform.html')


ممكنه اونجايي كه ازش هاست گرفتم نذاره ايميل ارسال شه؟

n.nowroozi
سه شنبه 07 مهر 1394, 08:19 صبح
اين كد:



if request.method == 'POST':
try:
message='Name of User : '+request.POST['name']+'\n\n\n'+'Subject : '+request.POST['subject']+'\n\n'+request.POST['message']+'\n\n\n'+'Email Address : '+request.POST['email'] send_mail(request.POST['subject'], message,from_email, to_email)
return render(request,'contactform.html',{'send':request. POST['name']})
except: return render(request,'contactform.html',{'fail':request. POST['name']})
else:
return
render(request,'contactform.html')


ممكنه اونجايي كه ازش هاست گرفتم نذاره ايميل ارسال شه؟
ارور رو هم گفتم بزار.. فکر کنم to رو باید به صورت لیست بزاری نه داده تکست خالی

arman54
سه شنبه 07 مهر 1394, 13:25 عصر
تو پستاي قبل كه گذاشتم...

ارورش ميگه Connection refused

===============================
to رو بصورت ليست دادم بازم نشد...

n.nowroozi
جمعه 10 مهر 1394, 20:53 عصر
تو پستاي قبل كه گذاشتم...

ارورش ميگه Connection refused

===============================
to رو بصورت ليست دادم بازم نشد...



منظور معمولا از ارور اینه که کل traceback رو بزاری حالا در هرصورت این (http://stackoverflow.com/questions/5802189/django-errno-111-connection-refused) رو نگاه کن