Hi, I’m new and I should say, I really don’t know much about this. I have made a webpage to collect homework. The homework is just multiple choice questions. First I asked the students to send me their answers in an email. They did not follow my instructions, some of them made a mess of it. So I thought, “Use textboxes and radio buttons.” However, if the emails were written correctly, I could download them and mark them with my little Python program, no problem
You can have a look here: www,fastmarker.com If you look, please click through to week9, that is the first time I’ve tried using php mail().
I’ll post here thankyouW9.php which sends the mail. This is all just learnt from forums and youtube, very primitive I’m afraid.
//should mail the contact form
<?php
$studentnr = $_POST['sn'];
$q1 = $_POST['1'];
$q2 = $_POST['2'];
$q3 = $_POST['3'];
$q4 = $_POST['4'];
$q5 = $_POST['5'];
$q6 = $_POST['6'];
$q7 = $_POST['7'];
$q8 = $_POST['8'];
$q9 = $_POST['9'];
$q10 = $_POST['10'];
$q11 = $_POST['11'];
$q12 = $_POST['12'];
$q13 = $_POST['13'];
$q14 = $_POST['14'];
$q15 = $_POST['15'];
$q16 = $_POST['16'];
$body = "
Studentnr = ".$studentnr."
Q1 = ".$q1."
Q2 = ".$q2."
Q3 = ".$q3."
Q4 = ".$q4."
Q5 = ".$q5."
Q6 = ".$q6."
Q7 = ".$q7."
Q8 = ".$q8."
Q9 = ".$q9."
Q10 = ".$q10."
Q11 = ".$q11."
Q12 = ".$q12."
Q13 = ".$q13."
Q14 = ".$q14."
Q15 = ".$q15."
Q16 = ".$q16."
";
$to1 = "[email protected]";
$to2 = "[email protected]";
$subject = $studentnr . "Week9";
mail($to1, $subject, $body);
mail($to2, $subject, $body);
header("Location: email_success.php");
?>
I receive the emails ok. I can see them in my email on my computer. The “body” part looks like this:
Studentnr = 1725010130
Q1 = B
Q2 = B
Q3 = F
Q4 = E
Q5 = T
Q6 = T
Q7 = T
Q8 = T
Q9 = B
Q10 = F
Q11 = F
Q12 = C
Q13 = F
Q14 = F
Q15 = C
Q16 = D
However when I run the python program in a bash terminal to download the mails for marking, the body is None. I get this error:
Number of unseen messages is 46
UID is 236
1725010132Week9
Message subject is 1725010132Week9
Message body is None
Traceback (most recent call last):
File “./getAnswersFromEmail17BEv3.py”, line 66, in <module>
text = message.text_part.get_payload().decode(message.text_part.charset)
TypeError: decode() argument 1 must be str, not None
I am a rank amateur at this. Can you please offer some advice, tips, links? Why does my email have no body, although I can see it, read it, in the email and it looks just as I intended?
Is there some way in php to get my post text in the body of the email?
Previously, I asked students to send me email answers by hand. I could download the body easily.