Код Python здесь
Код: Выделить всё
import http.client
import uuid
def send_email_http_only(from_email, reply_to, send_to, subject, mail_content, filename, attachment_path):
# Prepare the file content
file_path = attachment_path
with open(file_path, "rb") as f:
file_content = f.read()
# Define boundary and headers
boundary = str(uuid.uuid4())
headers = {
"User-Agent": f"MyApp/1.0",
"Content-Type": f"multipart/form-data; boundary=----{boundary}",
}
# Create HTTP connection
conn = http.client.HTTPConnection("localhost", 8088)
# Create multipart/form-data payload
payload = (
# f"----{boundary}\r\n"
# f"Content-Disposition: form-data; name=\"attachment\"; filename=\"" + filename + "\"\r\n"
# f"{file_content.decode('utf-8')}\r\n"
f"----{boundary}\r\n"
f"Content-Disposition: form-data; name=\"emailContent\"\r\n"
f"Content-Type: application/json\r\n\r\n"
f"{{\"replyTo\": \""+reply_to+"\", \"from\": \""+from_email+"\", \"sendTo\": \""+send_to+"\", \"subject\": \""+subject+"\", \"mailContent\": \""+mail_content+"\"}\r\n"
f"----{boundary}--\r\n"
)
emailContent = {
'replyTo': reply_to,
'from': from_email,
'sendTo': send_to,
'subject': subject,
'mailContent': mail_content
}
# print(f"request_data: {request_data}")
# print(f"payload: {payload}")
# print(f"headers: {headers}")
# Send the request
conn.request("POST", "/sendEmail", body=payload, headers=headers)
# Get the response
response = conn.getresponse()
data = response.read()
# Close the connection
conn.close()
# Print response
print("Program response:")
print(response.status, response.reason)
print(data.decode("utf-8"))
Я также пробовал добавить http.client.HTTPConnection.debuglevel = 1 но результат не выглядит недействительным.
Код: Выделить всё
send: b'POST /sendEmail HTTP/1.1\r\nHost: localhost:8088\r\nAccept-Encoding: identity\r\nContent-Length: 340\r\nUser-Agent: MyApp/1.0\r\nContent-Type: multipart/form-data; boundary=----18e9255e-7597-42ef-814f-f10b4f0a2c6e\r\n\r\n'
send: b'----18e9255e-7597-42ef-814f-f10b4f0a2c6e\r\nContent-Disposition: form-data; name="emailContent"\r\nContent-Type: application/json\r\n\r\n{"replyTo": "x@gmail.com", "from": "y@outlook.com", "sendTo": "y@outlook.com", "subject": "Test subject", "mailContent": "Test main content"}\r\n----18e9255e-7597-42ef-814f-f10b4f0a2c6e--\r\n'
reply: 'HTTP/1.1 400 \r\n'
Подробнее здесь: https://stackoverflow.com/questions/788 ... -in-python