2016-06-20 6 views
1

attach_file ist nicht die absolute URL auswählen, obwohl die Datei vorhanden ist. seine Lage, interne URL und sendet Datei pic aber nicht die absolute URLKeine solche Datei oder Verzeichnis attach_file in Django E-Mail

email.attach_file("http://devuserapi.doctorinsta.com/static/pdfs/Imran_1066.pdf",mimetype="application/pdf") 

diese Datei öffnet, wenn ich die URL in Browser kopieren und einfügen. Was könnte das Problem sein. Vielen Dank im Voraus

Antwort

1

attach_file eine Datei aus Ihrem Dateisystem nutzt, keinen URL, so dass Sie einen lokalen Pfad, um es

verwenden Siehe https://docs.djangoproject.com/en/1.9/topics/email/

One, ungetestet, Möglichkeit, die attach zu verwenden ist Verfahren statt und die Datei auf der Fliege zum Download:

import urllib2 
response = urllib2.urlopen("http://devuserapi.doctorinsta.com/static/pdfs/Imran_1066.pdf") 
email.attach('IMran_1066.pdf',response.read(),mimetype="application/pdf") 

Es fehlt Fehlerprüfung, um sicherzustellen, wurde die Datei heruntergeladen haben, natürlich, und ich habe nicht wirklich versucht, es selbst, aber das könnte eine Alternative für dich sein.

+0

Gibt es eine andere Möglichkeit, die Datei von der absoluten URL anhängen und in E-Mail senden. Meine pdfs werden auf verschiedenen Servern erstellt und die E-Mails werden von verschiedenen Servern gesendet. –

+0

@ankushmadaan Ich denke, dass Ihre Optionen wahrscheinlich einen Link zu ihr anstelle der Datei als Anhang einbetten werden; Laden Sie die Datei herunter, hängen Sie sie an und entfernen Sie sie, wenn Sie fertig sind. Oder verwenden Sie die Methode 'attach' und lassen Sie das Argument' content' etwas sein, das den Inhalt "on the fly" holt, damit Sie ihn nicht auf der Festplatte speichern müssen. –

+0

wird eines der oben genannten Dinge ausprobieren, aber es ist sehr merkwürdig Wir können keine externen Anhänge in der Django-E-Mail anhängen. Wie benutzen Leute CDN, um Anhangdateien zu senden? –

Verwandte Themen