2013-03-19 204 views
0

在我的項目中,電子郵件ID字段可用。使用django發送電子郵件

我正在收集作者的電子郵件ID,並在更新數據庫中的詳細信息時,電子郵件應該發送到該特定的電子郵件ID,並說該書名更新。

我views.py是

高清addbook(請求):

log.debug("test....") 

form = BookForm 

if request.POST: 
    form = BookForm(request.POST) 
    if form.is_valid(): 
     cd = form.cleaned_data 
     send_mail(cd['book_name'],cd['author_name'],cd.get(''),['[email protected]'],) 
     form.save() 
     return redirect('/index/') 
return render_to_response('addbook.html',{ 'form':form },context_instance=RequestContext(request)) 

我用這send_mail()方法來執行,但它不工作如我所料。

models.py是

類圖書(models.Model):

book_id=models.AutoField(primary_key=True,unique=True) 
book_name=models.CharField(max_length=30) 
author_name=models.CharField(max_length=30) 
publisher_name=models.CharField(max_length=40) 
email = models.EmailField() 
bookref = models.CharField(max_length=10) 
class Meta: 
    db_table = u'Book' 

def __unicode__(self): 
    return "%d %s %s %s %s" % (self.book_id,self.book_name, self.author_name,self.publisher_name,self.email,self.bookref) 

forms.py

class BookForm(ModelForm): 

    log.debug("test....") 

    class Meta: 
     model = Book 

     fields=['book_id','book_name','author_name','publisher_name','email','bookref'] 

的郵件應發送到在電子郵件字段中提到的電子郵件ID 。

感謝

+1

是否定義'EMAIL_HOST','EMAIL_PORT','EMAIL_HOST_USER'和'EMAIL_HOST_PASSWORD'在你的settings.py中?也可以嘗試打印cd ['book_name']','cd ['author_name']'和'cd.get('')',並確保您獲得了合適的值。 – arulmr 2013-03-19 05:32:09

+0

「不按預期工作」 - 它是如何工作的? – 2013-03-19 05:36:56

+0

我正在獲取的值,但它是發送郵件到硬編碼的電子郵件ID.I需要發送到該字段中捕獲的電子郵件ID。任何幫助接受 – user2086641 2013-03-19 05:42:59

回答

4

settings.py

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = 'user' 
EMAIL_HOST_PASSWORD = 'password' 
DEFAULT_FROM_EMAIL = 'your email' 

views.py

if request.POST: 
    form = BookForm(request.POST) 
    if form.is_valid(): 
     cd = form.cleaned_data 

     email_to = cd['email'] 
     subject = "{0} Update".format(
      cd['book_name']) 
     message = "Author: {0}\n\n Your book name is updated".format(
      cd['author_name']) 
     send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,[email_to,]) 

     form.save() 
     return redirect('/index/') 
+0

在settings.py中,我應該在哪段編輯。我懷疑是否應該在日誌配置中執行它。 – user2086641 2013-03-19 06:15:01

+0

您不必編輯東西只需添加電子郵件設置 – catherine 2013-03-19 06:16:39

+0

我收到一個錯誤「全局名稱」設置未定義「它指向send_mail()line.Any頭文件要導入或要導入的文件請幫我 – user2086641 2013-03-19 06:43:30