2016-08-31 7 views
0

私は、HTMLメールに画像を添付しないで作業しているウェブサイトに問題が発生しています。私はそれが修正されたと思ったが、誰かがそれに登録しようとするたびに、私はサーバーエラー(500)を取得します。PythonウェブアプリケーションでPeskyサーバーエラーが発生しました

2016-08-31 08:26:15,757 :Internal Server Error: /register/ 
Traceback (most recent call last): 
    File "/home/asranet/.virtualenvs/testenv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "/home/asranet/.virtualenvs/testenv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "./register/views.py", line 14, in index 
    form.save(commit=True) 
    File "/home/asranet/.virtualenvs/testenv/local/lib/python2.7/site-packages/django/forms/models.py", line 451, in save 
    self.instance.save() 
    File "./register/models.py", line 35, in save 
    email_client(self, site_settings.site_name + "Conference Registration", "You are officially registered for AdWind 2017") 
    File "./adWind/email_functionality.py", line 31, in email_client 
    fp = open(os.path.join(os.path.dirname(__file__), f), 'rb') 
IOError: [Errno 2] No such file or directory: u'./adWind/static/Images/asranetLogo.jpg' 

私がチェックし、ファイルがある:私は次のようにとにかくエラー・ログがあり、参照のカップルのように間違って行ったものを何の考えを変えませんしました。どのように進行するかわからない、実際にいくつかの助けを使用することができます。前もって感謝します!

P.S.

from __future__ import unicode_literals 
from django.core.mail import EmailMultiAlternatives 
from django.template.loader import render_to_string 
import os 
from email.mime.image import MIMEImage 
from reportlab.platypus.doctemplate import SimpleDocTemplate 
from reportlab.platypus import Paragraph, Spacer 
from reportlab.lib.styles import getSampleStyleSheet 
from django.http import HttpResponse 

try: 
from cStringIO import StringIO 
except ImportError: 
from StringIO import StringIO 


def email_client(self, subject, text): 
# Send the client an email 
html_content =     render_to_string("../templates/baseTemplates/emailToUser.html", {'salutation':  self.salutation, 
                       'last_name': 
                         self.last_name, 
                       'text_body': text}) 
msg = EmailMultiAlternatives(subject, 'Dear ' + self.salutation + ' ' + 
         self.last_name + '/n' + text, 
         '[email protected]', [self.email],) 
msg.attach_alternative(html_content, "text/html") 
msg.attach_file('/static/Images/asranetLogo.jpg') 
msg.mixed_subtype = 'related' 

f = '/static/Images/asranetLogo.jpg' 
fp = open(os.path.join(os.path.dirname(__file__), f), 'rb') 
msg_img = MIMEImage(fp.read()) 
fp.close() 
msg_img.add_header('Content-ID', '<{}>'.format(f)) 
msg.attach(msg_img) 
msg.send(fail_silently=True) 


def email_admin(self, subject, text, sorted_self): 

styleSheet = getSampleStyleSheet() 

# Send the admin a PDF of client details 
response = HttpResponse(content_type='application/pdf') 
response['Content-Disposition'] = 'attachment; filename="clientDetails.pdf"' 

string_buffer = StringIO() 

new_pdf = [] 
header = Paragraph("AdWind Attendee Details", styleSheet['Heading1']) 
new_pdf.append(header) 

for element in sorted_self: 
new_pdf.append(Paragraph(element[0], styleSheet['Heading3'])) 
new_pdf.append(Paragraph(element[1], styleSheet['BodyText'])) 
new_pdf.append(Spacer(1, 2)) 

doc = SimpleDocTemplate(string_buffer) 
doc.build(new_pdf) 
pdf = string_buffer.getvalue() 
string_buffer.close() 

msg = EmailMultiAlternatives(subject, text, "[email protected]",  ["[email protected]"]) 
msg.attach(self.first_name + self.last_name + "adWind.pdf", pdf,  "application/pdf") 
msg.send(fail_silently=True) 
+0

email_functionality' 'のコードを表示してください。 –

+0

こんにちは@DanielRoseman私は以下のコードを投稿しました。 –

+0

質問の更新として投稿する必要があります。インデントが正しいことを確認してください。 –

答えて

0

Djangoでは、静的ディレクトリは通常module_nameディレクトリの下にあります。私は相対的なものに、あなたのパスを変更することをお勧め:

msg.attach_file('static/[module_name]/Images/asranetLogo.jpg') 

f = 'static/[module_name]/Images/asranetLogo.jpg' 
+0

私は恐れています。 –

+0

'static/Images/asranetLogo.jpg'はどうですか? – navit

+0

ええ、それは昨日それを試してみましたが、役に立たない。それはServer Error 500の主な問題です。実際には何も教えてくれません。 –

関連する問題