Python发送的SMTP邮件未包含主题行

0 投票
2 回答
1123 浏览
提问于 2025-04-18 15:28

我的代码可以正常运行并发送邮件。
但是邮件里的收件人主题没有显示出来。这里是我用的代码片段。可能是什么问题呢?

代码:

   username = "N@EXAMPLE.com"
   password = "fnEOFINO”


   print("Logged in")

   sender = 'n@example.com'
   receivers = 'T@example.com'
   message = """From: Neeraja Rajiv  <NRajiv@EXAMPLE.com>
   To: T@EXAMPLE.COM 
   Subject: SMTP e-mail test

   Overall
   %d
                                               """%(variable)
   print("Connecting to server")

   server = smtplib.SMTP('SMTP-********.com', 25)
   print("Connected to server")
   server.set_debuglevel (1)
   server.sendmail(sender,receivers,message)         
   print ("Successfully sent email")

在邮件中,主题缺失了。

任何建议或方法都非常欢迎。

2 个回答

0

Padraic Cunningham的例子看起来没问题。这是另一个例子。也许这能帮到你...

下面是一个用Python发送邮件到SMTP服务器的示例脚本:

首先,你需要导入一个叫做smtplib的库,这个库可以帮助你发送邮件。

接下来,你可以用try语句来尝试执行一些代码:

host = '?.?.?.?'                                              #The Address To Your SMTP Server...
port = 25

to = 'reciever@someplace.com'                                 #Reciever Of Email...
from_addr = 'sender@someplace.com'                            #Sender Of Email...

subject = '<YOUR SUBJECT HERE>'                               #Subject Of Email...

text_line_1 = 'Body Line 1...\r\n'                            #Body Of Email...
text_line_2 = '\r\n'
text_line_3 = 'Body Line 3...\r\n'
text_line_4 = '\r\n'
text_line_5 = 'Body Line 5...\r\n'

total_message = text_line_1 + text_line_2 + text_line_3 + text_line_4 + text_line_5 

msg = "From: %s\nTo: %s\nSubject: %s\n\n%s" % (from_addr, [to], subject, total_message)

server = smtplib.SMTP(host, port)
server.sendmail(from_addr, to, msg)

print('Successfully Sent Email...')

如果在执行过程中出现了问题,except语句会捕捉到这个错误,并打印出错误信息:

祝你好运...

0

我觉得你的问题出在你创建消息的方式上,下面的示例代码是修正后的版本,可以正常工作:

msg = """From: 'From Neeraja Rajiv  <NRajiv@EXAMPLE.com>'
To: 'To Toffet Joseph - Consultant <TJoseph@EXAMPLE.com>'
Subject: 'SMTP e-mail test'
Overall'{}'""".format(variable)

username = "foo"
password = "bar"

print("Logged in")

import smtplib
sender = "foo@gmail.com"
receivers = "bar@gmail.com"
msg = """From: 'From Neeraja Rajiv  <NRajiv@EXAMPLE.com>'
To: 'To Toffet Joseph - Consultant <TJoseph@EXAMPLE.com>'
Subject: 'SMTP e-mail test'"""

server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.ehlo()
server.login(username, password)
server.sendmail(sender, receivers , msg)
server.quit()

撰写回答