Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Πρόβλημα με αποστολή email - κάποιο λάθος στον κώδικα;

Πρόβλημα με αποστολή email - κάποιο λάθος στον κώδικα; 9 Χρόνια 4 Μήνες πριν #3079

  • alzogo
  • Το Άβαταρ του/της alzogo
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 6
Γεια σας, για άλλη μια φορά ζητώ τη βοήθειά σας.

Πριν λίγο καιρό είχα φτιάξει ένα απλό πρόγραμμα και όλα ήταν μια χαρά. Λίγο καιρό μετά αποφάσισα να το ντύσω λίγο με GUI, με τη χρήση του tkinter. Πήρα τον κώδικα όπως ήταν, έκανα τις απαιτούμενες αλλαγές και ενώ όλα έδειχναν ότι δούλευαν ρολόι, ξαφνικά το πρόβλημα έκανε την εμφάνισή του.

Ένα συγκεκριμένο κομμάτι λοιπόν, είναι υπεύθυνο για να στέλνει το αποτέλεσμα του προγράμματος μέσω email, είναι ένα απλό κείμενο. Και ενώ ο ίδιος ακριβώς κώδικα πριν λειτουργούσε μια χαρά, τώρα δεν κάνει τη δουλειά του. Στέλνει το email εκεί που πρέπει κανονικά, αλλά ο παραλήπτης βλέπει ένα κενό email, πουθενά το κείμενο.

Παραθέτω το εν λόγω κομμάτι.
def apostolh(*args): #ΑΠΟΣΤΟΛΗ
	def send(*args): #ΚΟΥΜΠΙ ΑΠΟΣΤΟΛΗΣ
 
		mail=smtplib.SMTP("smtp.gmail.com", 587)
		mail.ehlo()
		mail.starttls()
 
		mail.login(entry_mail_username.get(),entry_mail_password.get())
		mail.sendmail(entry_mail_username.get(),entry_mail_paraliptis.get(),e2var.get())
		mail.close()
 
		print("Στάλθηκε αυτό: " + e2var.get()) #Επαληθεύω ότι η e2var δεν είναι κενή, και ότι το πρόβλημα δεν είναι εδώ.
 
	email = Toplevel()
	email.title("Αποστολή")
	label_mail_username= Label(email, text="e-mail").grid(row=0, sticky=W)
	label_mail_password = Label(email, text="Κωδικός").grid(row=1, sticky=W)
	label_mail_paraliptis = Label(email, text="Παραλήπτης").grid(row=2, sticky=W, pady=20)
 
	var_mail_username = StringVar()
	var_mail_password = StringVar()
	var_mail_paraliptis = StringVar()
 
	var_mail_username.set("example@gmail.com")
	var_mail_password.set("Κωδικός")
	var_mail_paraliptis.set("example@gmail.com")
 
	entry_mail_username = Entry(email, text=var_mail_username)
	entry_mail_password = Entry(email, text=var_mail_password)
	entry_mail_paraliptis = Entry(email, text=var_mail_paraliptis)
 
	entry_mail_password.grid(row=1, column=1)
	entry_mail_username.grid(row=0, column=1)
	entry_mail_paraliptis.grid(row=2, column=1, pady=20)
 
	button_mail_apostolh = Button(email, text="Αποστολή",command=send, activebackground="blue", activeforeground="yellow", overrelief="ridge").grid(row=3, column=0, sticky=EW, pady=5, padx=5)
	button_mail_kleisimo = Button(email, text="Κλείσιμο", command=email.withdraw, activebackground="red",activeforeground="yellow", overrelief="ridge").grid(row=3, column=1, sticky=EW, pady=5, padx=5)

Βλέπει λοιπόν κάποιο αετίσιο μάτι κάτι που το δικό μου μάτι, δεν μπορεί να δει; Κάποιο σφάλμα σ αυτό το κομμάτι;
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Πρόβλημα με αποστολή email - κάποιο λάθος στον κώδικα; 9 Χρόνια 4 Μήνες πριν #3082

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Με μια πρώτη ματιά δεν φαίνεται κάτι ύποπτο. Όμως το κομμάτι του κώδικα που έδωσες δεν τρέχει. Υποθέτω ότι είναι κομμάτι ενός μεγαλύτερου προγράμματος. Ίσως το πρόβλημα να βρίσκεται εκεί.
Επίσης η συνάρτηση send, δέχεται ορίσματα, αλλά στο κουμπί button_mail_apostolh δεν βλέπω τα ορίσματα. Ίσως εκεί βρίσκεται το πρόβλημα.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Πρόβλημα με αποστολή email - κάποιο λάθος στον κώδικα; 9 Χρόνια 4 Μήνες πριν #3083

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Για κάποιο λόγο δεν στέλνει σωστά τους ελληνικούς χαρακτήρες.

Η λύση είναι αυτή:

from email.mime.text import MIMEText # Προσθήκη στα imports.
 
def apostolh(*args): #ΑΠΟΣΤΟΛΗ
	def send(*args): #ΚΟΥΜΠΙ ΑΠΟΣΤΟΛΗΣ
 
		mail=smtplib.SMTP("smtp.gmail.com", 587)
		mail.ehlo()
		mail.starttls()
 
		mail.login(entry_mail_username.get(),entry_mail_password.get())
		msg = MIMEText(e2var.get(), 'plain')
		msg['Subject'] = 'Test Email' # Προαιτετικό, όπως και οι δυο γραμμές που ακολουθούν.
		msg['From'] = entry_mail_username.get()
		msg['To'] = entry_mail_paraliptis.get()
		mail.sendmail(str(entry_mail_username.get()),str(entry_mail_paraliptis.get()), msg.as_string())
# Συνεχίζει κανονικά το υπόλοιπο script.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.343 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου