Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在将字符串添加到电子邮件时\n获取该字符串_Python_Smtplib - Fatal编程技术网

Python 在将字符串添加到电子邮件时\n获取该字符串

Python 在将字符串添加到电子邮件时\n获取该字符串,python,smtplib,Python,Smtplib,正在尝试使用以下代码添加我以前从excel创建的字符串 data = interface.df data1 = data.drop_duplicates(subset=["Ref/Lic Nr"], keep="first") cr = pd.DataFrame(data1,columns= ['Carrier']) rf = pd.DataFrame(data1,columns= ['Ref/Lic Nr']) amtg = data1.loc[data

正在尝试使用以下代码添加我以前从excel创建的字符串

data = interface.df
data1 = data.drop_duplicates(subset=["Ref/Lic Nr"], keep="first")
cr = pd.DataFrame(data1,columns= ['Carrier'])
rf = pd.DataFrame(data1,columns= ['Ref/Lic Nr'])
amtg = data1.loc[data1.Carrier=='AMTG', 'Ref/Lic Nr']
amtg1=(amtg.to_string(index=False, header=False))
import smtplib
import carriers
gmail_user = 'asgsgasgasg@gmail.com'
gmail_password = 'wqrqwgqwgqwb'

sent_from = gmail_user
if len(carriers.amtg) > 0:   
    to = ['afasgaswrl@gmail.com']
    subject = 'updates'
    body = " Good morning, Can we get updates for: ", carriers.amtg1
else:
     pass

email_text = """\
From: %s
To: %s
Subject: %s

%s
""" % (sent_from, ", ".join(to), subject, body)

try:
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.ehlo()
    server.login(gmail_user, gmail_password)
    server.sendmail(sent_from, to, email_text)
    server.close()

    print ('Email sent!')
except:
    print ('Something went wrong...')
然后把它输入到这个代码中

data = interface.df
data1 = data.drop_duplicates(subset=["Ref/Lic Nr"], keep="first")
cr = pd.DataFrame(data1,columns= ['Carrier'])
rf = pd.DataFrame(data1,columns= ['Ref/Lic Nr'])
amtg = data1.loc[data1.Carrier=='AMTG', 'Ref/Lic Nr']
amtg1=(amtg.to_string(index=False, header=False))
import smtplib
import carriers
gmail_user = 'asgsgasgasg@gmail.com'
gmail_password = 'wqrqwgqwgqwb'

sent_from = gmail_user
if len(carriers.amtg) > 0:   
    to = ['afasgaswrl@gmail.com']
    subject = 'updates'
    body = " Good morning, Can we get updates for: ", carriers.amtg1
else:
     pass

email_text = """\
From: %s
To: %s
Subject: %s

%s
""" % (sent_from, ", ".join(to), subject, body)

try:
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.ehlo()
    server.login(gmail_user, gmail_password)
    server.sendmail(sent_from, to, email_text)
    server.close()

    print ('Email sent!')
except:
    print ('Something went wrong...')
但当我收到信息时,我会得到CNG413874\n CNG413875\n之类的值,而不是:

CNG413874

CNG413875

您的问题在于:

body = " Good morning, Can we get updates for: ", carriers.amtg1
这将
正文
设置为字符串的
元组
,而不是一个长字符串,当它被格式化为
email_text
变量时,它将以
tuple
str
形式放入其组件的
repr
(带换行符的
str
repr
将显示转义,而不是原始换行符)。要使其正常工作,请将字符串连接为单个字符串:

body = " Good morning, Can we get updates for: " + carriers.amtg1

这将直接将正常的
str
表单格式化为
email_text
,而不是多个
repr
s,以防止出现此问题。

您可以始终对字符串使用rstrip方法,如下所示:
amtg1.rstrip(\\n”)
。使用\\来转义反斜杠,而且这样n也不会形成换行符。您是否收到任何错误?因为您所说的唯一一件事是,当您收到信息时,您会得到带有换行符
\n
的原始字符串,而不是格式化的文本。@Green05尝试过,但还是以某种方式接收到错误。添加我收到的电子邮件的图像。@MyWork嗨,是的,我收到的是原始字符串而不是格式化的文本,格式在这种情况下非常重要。天哪,伙计,刚刚意识到我有多傻,我花了几个小时试图修复它)谢谢)