Python-可以在平原项目中使用附件中的邮件,但不能在课堂上使用

  • 本文关键字:但不能 课堂 项目 Python- python
  • 更新时间 :
  • 英文 :


我正在从Windows文件夹中挑选一个文件,我正在尝试通过Gmail发送。
该代码在单独的Python程序中执行时可以正常工作,但是我无法在类中使用相同的程序。

import smtplib
import base64
filename = str("JDI Offline.txt").split('\')[-1:][0]
filepath = "C:WindowsJDI Offline.txt"
fo = open(filepath, "rb")
filecontent = fo.read()
fo.close()
encodedcontent = base64.b64encode(filecontent)
sender = 'vusvarshil@gmail.com'
receiver = 'vusvarshil@gmail.com'
marker = "AUNIQUEMARKER"
body = """
Test to send attatchment
"""
part1 = """From: From Varshil<vusvarshil@gmail.com>
To:me
Subject: Sending attatchment
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=%s
--%s
""" % (marker, marker)
part2 = """Content-Type: text/plain
Content-Transfer-Encoding:8bit
%s
--%s
""" % (body, marker)
part3 = """Content-Type:multipart/mixed; name="%s"
Content-Transfer-Encoding:base64
Content-Disposition: attatchment; filepath=%s
%s
--%s--
""" % (filename, filepath, encodedcontent, marker)
message = part1 + part2 + part3
try:
    mail = smtplib.SMTP('smtp.gmail.com', 587)
    mail.ehlo()
    mail.starttls()
    mail.login('vusvarshil@gmail.com', 'xxxxxxxx')
    mail.sendmail('vusvarshil@gmail.com', 'vusvarshil@gmail.com', message)
    print "Mail Sent successfully"
except Exception:
    print "Error"

当我在类中使用此代码时,我会收到空白邮件。我已连接屏幕截图

在类中使用程序的程序
程序的程序时,没有类的程序

类Sendmail: def send_mail(): 导入SMTPLIB 导入base64

filename = str("JDI Offline.txt").split('\')[-1:][0]
filepath = "C:WindowsJDI Offline.txt"
fo = open(filepath, "rb")
filecontent = fo.read()
fo.close()
encodedcontent = base64.b64encode(filecontent)
sender = 'vusvarshil@gmail.com'
receiver = 'vusvarshil@gmail.com'
marker = "AUNIQUEMARKER"
body = """
Test to send attatchment
"""
part1 = """From: From Varshil<vusvarshil@gmail.com>
To:me
Subject: Sending attatchment
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=%s
--%s
""" % (marker, marker)
part2 = """Content-Type: text/plain
Content-Transfer-Encoding:8bit
%s
--%s
""" % (body, marker)
part3 = """Content-Type:multipart/mixed; name="%s"
Content-Transfer-Encoding:base64
Content-Disposition: attatchment; filepath=%s
%s
--%s--
""" % (filename, filepath, encodedcontent, marker)
message = part1 + part2 + part3
try:
    mail = smtplib.SMTP('smtp.gmail.com', 587)
    mail.ehlo()
    mail.starttls()
    mail.login('vusvarshil@gmail.com', 'xxxxxxxx')
    mail.sendmail('vusvarshil@gmail.com', 'vusvarshil@gmail.com', message)
    print "Mail Sent successfully"
except Exception:
    print "Error"
ob=sendmail()
ob.send_email()

有人请告诉什么问题。

我找到了解决问题的解决方案。该代码没有工作,因此我搜索了一个新代码。我正在此处发布代码以备将来参考。在以下代码中,我正在读取文件中的数据并附加标签,因为这是我的要求。您可以根据需要更改代码

# coding:utf-8

  import smtplib
  from email import MIMEMultipart
  from email import MIMEText
  from email import MIMEBase
  from email import encoders
  class classname:
  def fname(self):
    fromaddr = "mshah9900@gmail.com"
    toaddr = "vusvarshil@gmail.com"
    msg = MIMEMultipart.MIMEMultipart()
    msg['From'] = fromaddr
    msg['To'] = toaddr
    msg['Subject'] = "SUBJECT OF THE EMAIL"
    body = "TEXT YOU WANT TO SEND"
    msg.attach(MIMEText.MIMEText(body, 'plain'))
    filename = "JDI Offline.txt"
    fo = open("C:WindowsJDI Offline.txt", "rb")
    length = len(fo.readlines())
    fo.close()
    fo = open("C:WindowsJDI Offline.txt", "rb")
    filecontent = ""
    arr = ["Company name", "Contact person name", "Email", "Contact no.", "Address_Line_1", "Address_Line_2",
           "Address_Line_3", "City", "Pincode", "State", "Country", "PanCard No.", "Model", "Size", "Device Name",
           "Serial Number", "MediaType", "Interface type", "OS", "Ip address", "Registered date", "Registered Time"]
    for x in range(0,length):
             filecontent += arr[x] + ": " + fo.readline().lstrip().rstrip() + "n"

    #     fo.close()
    filecontent += """n
Additional content
"""
    fo.close()
    #print filecontent

    attachment = open("C:WindowsJDI Offline.txt", "rb")
    # attachment += "hello"
    part = MIMEBase.MIMEBase('application', 'octet-stream')
    part.set_payload((filecontent))
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
    msg.attach(part)
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(fromaddr, "xxxxxxxx")
    text = msg.as_string()
    server.sendmail(fromaddr, toaddr, text)
    server.quit()
    cn=classname()
    cn.fname()

相关内容

最新更新