用Python发送电子邮件主题
当我的程序发送电子邮件时,我的邮件主题部分出现问题。我以为我在遵循SMTP的RFC规范。。但我似乎不知道我做错了什么。非常感谢您的帮助用Python发送电子邮件主题,python,email,python-3.x,smtp,smtplib,Python,Email,Python 3.x,Smtp,Smtplib,当我的程序发送电子邮件时,我的邮件主题部分出现问题。我以为我在遵循SMTP的RFC规范。。但我似乎不知道我做错了什么。非常感谢您的帮助 def email(): sender = 'username@domain.com' receivers = ['username@domain.com'] message = """From: From Admin <admin@domain.com> To:To Person <user@domain.
def email():
sender = 'username@domain.com'
receivers = ['username@domain.com']
message = """From: From Admin <admin@domain.com>
To:To Person <user@domain.com>
Subject: Important Information
This is a test email message.
"""
try:
smtpObj = smtplib.SMTP('domain.com', 25)
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except smtplib.SMTPException:
print('Error: unable to send email')
def email():
发送者username@domain.com'
接收者=['username@domain.com']
message=“”发件人:来自管理员
致:致人
主题:重要信息
这是一封测试电子邮件。
"""
尝试:
smtpObj=smtplib.SMTP('domain.com',25)
smtpObj.sendmail(发送者、接收者、消息)
打印“已成功发送电子邮件”
除了smtplib.SMTPException:
打印('错误:无法发送电子邮件')
不确定您的代码有什么问题
FWIW,我过去曾使用string.join创建我的邮件正文:
def send_email():
import string,smtplib
SMTPserver = "smtp.com"
# To is a comma-separated list
To = "sender@domain.com"
From = "receipient@domain.com"
Subj = "test subject"
Text = """test email.
Not sure what the problem is
Multi-line anyway."""
Body = string.join((
"From: %s" % From,
"To: %s" % To,
"Subject: %s" % Subj,
"",
Text,
), "\r\n")
s = smtplib.SMTP(SMTPserver)
s.sendmail(From,[To],Body)
s.quit()
-J不确定您的代码有什么问题 FWIW,我过去曾使用string.join创建我的邮件正文:
def send_email():
import string,smtplib
SMTPserver = "smtp.com"
# To is a comma-separated list
To = "sender@domain.com"
From = "receipient@domain.com"
Subj = "test subject"
Text = """test email.
Not sure what the problem is
Multi-line anyway."""
Body = string.join((
"From: %s" % From,
"To: %s" % To,
"Subject: %s" % Subj,
"",
Text,
), "\r\n")
s = smtplib.SMTP(SMTPserver)
s.sendmail(From,[To],Body)
s.quit()
-J试试下面的例子
或者试试我的示例代码。我不需要从标题,但我想你可以添加它,如果你想
import smtplib
USER_NAME = 'username@domain.com'
PASSWORD = getpass.getpass("%s's PASSWORD: " % USER_NAME)
DEBUG = True
MESSAGE_FORMAT = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" # %(fromAddr,to,subject,text)
def sendEmail(recipient,message):
SMTP_SERVER_URL = 'smtp.gmail.com'
mailserver = smtplib.SMTP(SMTP_SERVER_URL)
if DEBUG:
mailserver.set_debuglevel(1)
mailserver.ehlo()
mailserver.starttls()
mailserver.ehlo()
mailserver.login(USER_NAME,PASSWORD)
mailserver.sendmail('', recipient, message)
mailserver.close()
def sendEmailWithFields(to,subject,text):
message = MESSAGE_FORMAT%('', to, subject, text)
sendEmail(to,message)
if __name__ == '__main__':
to = 'receipient@domain.com'
subject = 'The subject'
text = 'The text body'
sendEmailWithFields(to,subject,text)
试试下面的例子
或者试试我的示例代码。我不需要从标题,但我想你可以添加它,如果你想
import smtplib
USER_NAME = 'username@domain.com'
PASSWORD = getpass.getpass("%s's PASSWORD: " % USER_NAME)
DEBUG = True
MESSAGE_FORMAT = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" # %(fromAddr,to,subject,text)
def sendEmail(recipient,message):
SMTP_SERVER_URL = 'smtp.gmail.com'
mailserver = smtplib.SMTP(SMTP_SERVER_URL)
if DEBUG:
mailserver.set_debuglevel(1)
mailserver.ehlo()
mailserver.starttls()
mailserver.ehlo()
mailserver.login(USER_NAME,PASSWORD)
mailserver.sendmail('', recipient, message)
mailserver.close()
def sendEmailWithFields(to,subject,text):
message = MESSAGE_FORMAT%('', to, subject, text)
sendEmail(to,message)
if __name__ == '__main__':
to = 'receipient@domain.com'
subject = 'The subject'
text = 'The text body'
sendEmailWithFields(to,subject,text)
你收到了什么错误或意外的结果?(没有主题)在电子邮件的主题。。我不明白为什么即使我在电子邮件中给它一个主题,我也在创建您的标题需要用@jordanm分隔\r\n-这应该不是问题所在。为了避免在创建电子邮件时出错,最好使用[
电子邮件
](docs.python.org/library/email)模块。收到的邮件中的标题看起来如何?主题行是否存在,是否出现,是否以某种方式被破坏?您在电子邮件主题中得到了什么错误或意外结果?(无主题)。。我不明白为什么即使我在电子邮件中给它一个主题,我也在创建您的标题需要用@jordanm分隔\r\n-这应该不是问题所在。为了避免在创建电子邮件时出错,最好使用[电子邮件
](docs.python.org/library/email)模块。收到的邮件中的标题看起来如何?主题行在那里吗?它出现了吗?它在某种程度上被破坏了吗?