Missing subject line on email sent using smptlib
I'm trying to send out an email using python's smptlib, which seems to be working fine except the subject key does not get attached. (image [1]: https://i.stack.imgur.com/XkpLh.png)
I've looked at other solutions but none of them work for me. They are solving mostly for text based additions in the form of headers but my code involves sending a dataframe as a table which gets messed up when I try these solutions.
Posts I've looked at:
Python: "subject" not shown when sending email using smtplib module
Subject line not coming in the smtp mail sent from python
Python smtplib sendmail() not working with subject / body
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from tabulate import tabulate
sender = 'email@email.com'
recipients = 'email@email.com'
subject = "Test Email 1234"
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
# Create the body of the message (a plain-text and an HTML version).
text = """
text
{table}
text
"""
html = """
<html>
<head>
<style>
table, th, td {{ border: 1px solid black; border-collapse: collapse; text-align: center;}}
th, td {{ padding: 8px; }}
</style>
</head>
<body><p>text </p>
<br><br><br>
{table}
<br><br><br>
<p>Regards,</p>
<p>abc</p>
</body></html>
"""
col_list = list(df.columns.values)
data = df
# above line took every col inside csv as list
text = text.format(table=tabulate(data, headers=col_list, tablefmt="grid"))
html = html.format(table=tabulate(data, headers=col_list, tablefmt="html"))
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
# Send the message via local SMTP server.
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("email@gmail.com", "pw")
server.sendmail(sender,recipients, msg.as_string())
server.quit()
python smtplib
add a comment |
I'm trying to send out an email using python's smptlib, which seems to be working fine except the subject key does not get attached. (image [1]: https://i.stack.imgur.com/XkpLh.png)
I've looked at other solutions but none of them work for me. They are solving mostly for text based additions in the form of headers but my code involves sending a dataframe as a table which gets messed up when I try these solutions.
Posts I've looked at:
Python: "subject" not shown when sending email using smtplib module
Subject line not coming in the smtp mail sent from python
Python smtplib sendmail() not working with subject / body
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from tabulate import tabulate
sender = 'email@email.com'
recipients = 'email@email.com'
subject = "Test Email 1234"
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
# Create the body of the message (a plain-text and an HTML version).
text = """
text
{table}
text
"""
html = """
<html>
<head>
<style>
table, th, td {{ border: 1px solid black; border-collapse: collapse; text-align: center;}}
th, td {{ padding: 8px; }}
</style>
</head>
<body><p>text </p>
<br><br><br>
{table}
<br><br><br>
<p>Regards,</p>
<p>abc</p>
</body></html>
"""
col_list = list(df.columns.values)
data = df
# above line took every col inside csv as list
text = text.format(table=tabulate(data, headers=col_list, tablefmt="grid"))
html = html.format(table=tabulate(data, headers=col_list, tablefmt="html"))
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
# Send the message via local SMTP server.
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("email@gmail.com", "pw")
server.sendmail(sender,recipients, msg.as_string())
server.quit()
python smtplib
add a comment |
I'm trying to send out an email using python's smptlib, which seems to be working fine except the subject key does not get attached. (image [1]: https://i.stack.imgur.com/XkpLh.png)
I've looked at other solutions but none of them work for me. They are solving mostly for text based additions in the form of headers but my code involves sending a dataframe as a table which gets messed up when I try these solutions.
Posts I've looked at:
Python: "subject" not shown when sending email using smtplib module
Subject line not coming in the smtp mail sent from python
Python smtplib sendmail() not working with subject / body
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from tabulate import tabulate
sender = 'email@email.com'
recipients = 'email@email.com'
subject = "Test Email 1234"
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
# Create the body of the message (a plain-text and an HTML version).
text = """
text
{table}
text
"""
html = """
<html>
<head>
<style>
table, th, td {{ border: 1px solid black; border-collapse: collapse; text-align: center;}}
th, td {{ padding: 8px; }}
</style>
</head>
<body><p>text </p>
<br><br><br>
{table}
<br><br><br>
<p>Regards,</p>
<p>abc</p>
</body></html>
"""
col_list = list(df.columns.values)
data = df
# above line took every col inside csv as list
text = text.format(table=tabulate(data, headers=col_list, tablefmt="grid"))
html = html.format(table=tabulate(data, headers=col_list, tablefmt="html"))
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
# Send the message via local SMTP server.
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("email@gmail.com", "pw")
server.sendmail(sender,recipients, msg.as_string())
server.quit()
python smtplib
I'm trying to send out an email using python's smptlib, which seems to be working fine except the subject key does not get attached. (image [1]: https://i.stack.imgur.com/XkpLh.png)
I've looked at other solutions but none of them work for me. They are solving mostly for text based additions in the form of headers but my code involves sending a dataframe as a table which gets messed up when I try these solutions.
Posts I've looked at:
Python: "subject" not shown when sending email using smtplib module
Subject line not coming in the smtp mail sent from python
Python smtplib sendmail() not working with subject / body
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from tabulate import tabulate
sender = 'email@email.com'
recipients = 'email@email.com'
subject = "Test Email 1234"
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
# Create the body of the message (a plain-text and an HTML version).
text = """
text
{table}
text
"""
html = """
<html>
<head>
<style>
table, th, td {{ border: 1px solid black; border-collapse: collapse; text-align: center;}}
th, td {{ padding: 8px; }}
</style>
</head>
<body><p>text </p>
<br><br><br>
{table}
<br><br><br>
<p>Regards,</p>
<p>abc</p>
</body></html>
"""
col_list = list(df.columns.values)
data = df
# above line took every col inside csv as list
text = text.format(table=tabulate(data, headers=col_list, tablefmt="grid"))
html = html.format(table=tabulate(data, headers=col_list, tablefmt="html"))
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
# Send the message via local SMTP server.
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("email@gmail.com", "pw")
server.sendmail(sender,recipients, msg.as_string())
server.quit()
python smtplib
python smtplib
edited Dec 27 '18 at 19:50
DeepSpace
37.1k44169
37.1k44169
asked Dec 27 '18 at 19:49
Sam Siva
81
81
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Your settings
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
will be overwritten, as soon as you do
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
later on.
Just switch their order and remove the first msg = MIMEMultipart()
.
It worked!! Thanks for this solution! Didn't realize I was doing this :)
– Sam Siva
Dec 29 '18 at 1:48
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53950156%2fmissing-subject-line-on-email-sent-using-smptlib%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Your settings
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
will be overwritten, as soon as you do
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
later on.
Just switch their order and remove the first msg = MIMEMultipart()
.
It worked!! Thanks for this solution! Didn't realize I was doing this :)
– Sam Siva
Dec 29 '18 at 1:48
add a comment |
Your settings
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
will be overwritten, as soon as you do
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
later on.
Just switch their order and remove the first msg = MIMEMultipart()
.
It worked!! Thanks for this solution! Didn't realize I was doing this :)
– Sam Siva
Dec 29 '18 at 1:48
add a comment |
Your settings
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
will be overwritten, as soon as you do
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
later on.
Just switch their order and remove the first msg = MIMEMultipart()
.
Your settings
msg['From'] = sender
msg['To'] = ", ".join(recipients)
msg['Subject'] = subject
will be overwritten, as soon as you do
msg = MIMEMultipart("alternative", None, [MIMEText(text), MIMEText(html,'html')])
later on.
Just switch their order and remove the first msg = MIMEMultipart()
.
answered Dec 27 '18 at 19:51
Jayjayyy
2,39221828
2,39221828
It worked!! Thanks for this solution! Didn't realize I was doing this :)
– Sam Siva
Dec 29 '18 at 1:48
add a comment |
It worked!! Thanks for this solution! Didn't realize I was doing this :)
– Sam Siva
Dec 29 '18 at 1:48
It worked!! Thanks for this solution! Didn't realize I was doing this :)
– Sam Siva
Dec 29 '18 at 1:48
It worked!! Thanks for this solution! Didn't realize I was doing this :)
– Sam Siva
Dec 29 '18 at 1:48
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53950156%2fmissing-subject-line-on-email-sent-using-smptlib%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown