使用Python发送短信时文本下方出现空行的问题求助
解决邮件/短信内容末尾空行问题
你的问题出在两个地方:一是构造内容时末尾多了个不必要的冒号,二是纯文本格式的内容如果带多余符号,会被客户端或短信网关解析出额外空行。
直接给你修正后的代码,同时补上你漏掉的pandas导入(不然代码跑不起来):
import smtplib import pandas as pd # 补上缺失的pandas导入 from time import sleep SenderAddress = "blahblah@gmail.com" password = "niun2idjnwe" e = pd.read_excel("Email.xlsx") emails = e['Emails'].values server = smtplib.SMTP("smtp.mail.ru", 587) server.starttls() server.login(SenderAddress, password) msg = "Hey" subject = "" # 去掉末尾多余的冒号,避免触发不必要的格式解析 body = "Subject:{}\n\n{}".format(subject, msg) for email in emails: server.sendmail(SenderAddress, email, body) sleep(5) server.quit()
如果是通过邮件网关发送短信,还可以对消息内容做首尾空白清理,防止隐性换行:
body = "Subject:{}\n\n{}".format(subject, msg.strip())
原理很简单:你原来的{}:会在内容末尾加个冒号,有些客户端会自动在符号后补换行;另外确保内容本身没有多余的换行或空格,就能解决末尾空行的问题。
内容的提问来源于stack exchange,提问作者sludge
相关产品推荐
相关产品推荐

