কিভাবে ইমেল সংযুক্তি প্রেরণ?


283

পাইথন ব্যবহার করে কোনও সংযুক্তি কীভাবে ইমেল করা যায় তা বুঝতে আমার সমস্যা হচ্ছে। আমি সাফল্যের সাথে সহজ বার্তা ইমেল করেছি smtplib। কেউ দয়া করে ইমেলটিতে সংযুক্তি কীভাবে প্রেরণ করবেন তা ব্যাখ্যা করতে পারেন। আমি জানি অনলাইনে অন্যান্য পোস্ট রয়েছে তবে পাইথন শিক্ষানবিশ হিসাবে আমি তাদের বুঝতে অসুবিধা বোধ করি।


5
এখানে একটি সাধারণ বাস্তবায়ন যা একাধিক ফাইল সংযুক্ত করতে পারে এবং এম্বেড করার জন্য এমনকি চিত্রগুলির ক্ষেত্রে তাদের উল্লেখ করে। datamakessense.com/…
অ্যাড্রিয়ানআরবি

আমি এই দরকারী drupal.org/project/mimemail/issues/911612 খুঁজে পাওয়া যায় যে সম্পর্কিত ধরণের সন্তানের অংশের সাথে চিত্রের সংযুক্তিগুলি সংযুক্ত করা দরকার। আপনি চিত্রটি মূল মাইমির অংশে সংযুক্ত করলে চিত্রগুলি সংযুক্ত আইটেমের তালিকায় প্রদর্শিত হতে পারে এবং ক্লায়েন্টগুলিতে আউটলুক 365 এর মতো পূর্বরূপ পাওয়া যায়।
হিঁচি

@ অ্যাড্রিয়ান বিআর যদি পিডিএফ ফাইল হিসাবে আমার একটি চিত্র থাকে তবে কী হবে। জুম করার সময় পিএনজি'র পিক্সেল সমস্যা রয়েছে তাই পিএনজি আমার পক্ষে ভাল নয়।
পিনোকিও

উত্তর:


416

এখানে আরও একটি:

import smtplib
from os.path import basename
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate


def send_mail(send_from, send_to, subject, text, files=None,
              server="127.0.0.1"):
    assert isinstance(send_to, list)

    msg = MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = COMMASPACE.join(send_to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach(MIMEText(text))

    for f in files or []:
        with open(f, "rb") as fil:
            part = MIMEApplication(
                fil.read(),
                Name=basename(f)
            )
        # After the file is closed
        part['Content-Disposition'] = 'attachment; filename="%s"' % basename(f)
        msg.attach(part)


    smtp = smtplib.SMTP(server)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.close()

এটি প্রথম উদাহরণের মতো অনেকটাই ... তবে এটিকে ছেড়ে দেওয়া আরও সহজ হওয়া উচিত।


7
পরিবর্তনীয় খেলাপি ডিফল্টগুলি সম্পর্কে সতর্ক থাকুন: স্ট্যাকওভারফ্লো
সিকোয়েনসগুলি

11
@ ব্যবহারকারী589983 এখানে অন্য কোনও ব্যবহারকারীর মতো সম্পাদনার পরামর্শ দিচ্ছেন না কেন? আমি অবশিষ্ট রেফারেন্স পরিবর্তন করেছি fileমধ্যে f
অলি

9
পাইথন 3 বিকাশকারীদের জন্য বিজ্ঞপ্তি: মডিউল "email.Utils" এর নাম পরিবর্তন করে "email.utils" করা হয়েছে
gecco

7
পাইথন ২.৫ এর জন্য + এর পরিবর্তে মাইম অ্যাপ্লিকেশনটি ব্যবহার করা সহজ - তিনি লুপের টি এর প্রথম তিনটি লাইন হ্রাস করে:part = MIMEApplication(open(f, 'rb').read())
মাতা

5
প্রেরিত ইমেলটিতে বিষয় দেখানো হয়নি। কেবলমাত্র [[বিষয় '] = সাবজেক্টে লাইন পরিবর্তন করার পরে কাজ করেছেন। আমি পাইথন ২.7 ব্যবহার করি।
লুক

70

Oliপাইথন 3 এর জন্য পরিবর্তিত সংস্করণ এখানে

import smtplib
from pathlib import Path
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate
from email import encoders


def send_mail(send_from, send_to, subject, message, files=[],
              server="localhost", port=587, username='', password='',
              use_tls=True):
    """Compose and send email with provided info and attachments.

    Args:
        send_from (str): from name
        send_to (list[str]): to name(s)
        subject (str): message title
        message (str): message body
        files (list[str]): list of file paths to be attached to email
        server (str): mail server host name
        port (int): port number
        username (str): server auth username
        password (str): server auth password
        use_tls (bool): use TLS mode
    """
    msg = MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = COMMASPACE.join(send_to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach(MIMEText(message))

    for path in files:
        part = MIMEBase('application', "octet-stream")
        with open(path, 'rb') as file:
            part.set_payload(file.read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition',
                        'attachment; filename="{}"'.format(Path(path).name))
        msg.attach(part)

    smtp = smtplib.SMTP(server, port)
    if use_tls:
        smtp.starttls()
    smtp.login(username, password)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.quit()

ধন্যবাদ তবে
বেসিকটিও ভাল লাগবে

মনে হচ্ছে আপনি আপনার ফাইলগুলি বন্ধ করেন না, এটি আবর্জনা সংগ্রহ করা হবে বা প্রস্থান করার সময় বন্ধ হবে তবে এটি অভ্যাসের অভ্যাস নয়। ওপেন () হিসাবে f: সঠিক পথ is
comte

কোড কাজ করে না। ফর্ম্যাটতে ভুল ভেরিয়েবলের নাম (os.path.basename (f)) ফর্ম্যাট হওয়া উচিত (os.path.basename (পাথ))
ক্রিস

1
send_to তালিকা হওয়া উচিত [str]
সাবিন

2
আমার জন্য সবচেয়ে ভালো উত্তর কিন্তু একটি ছোট ত্রুটি: প্রতিস্থাপন import pathlibসঙ্গেfrom pathlib import Path
AleAve81

65

এই কোডটি আমি ব্যবহার করে শেষ করেছি:

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email import Encoders


SUBJECT = "Email Data"

msg = MIMEMultipart()
msg['Subject'] = SUBJECT 
msg['From'] = self.EMAIL_FROM
msg['To'] = ', '.join(self.EMAIL_TO)

part = MIMEBase('application', "octet-stream")
part.set_payload(open("text.txt", "rb").read())
Encoders.encode_base64(part)

part.add_header('Content-Disposition', 'attachment; filename="text.txt"')

msg.attach(part)

server = smtplib.SMTP(self.EMAIL_SERVER)
server.sendmail(self.EMAIL_FROM, self.EMAIL_TO, msg.as_string())

কোড অনেকটা অলির পোস্টের মতো। সবাইকে ধন্যবাদ

বাইনারি ফাইল ইমেল সংযুক্তি সমস্যা পোস্টের ভিত্তিতে কোড ।


2
ভাল উত্তর. এতে যদি এমন কোড থাকে যা একটি নমুনা বডি পাঠ্য যুক্ত করে।
স্টিভেন ব্লুয়েন

4
দয়া করে মনে রাখবেন, ইমেল গ্রন্থাগারের আধুনিক প্রকাশে - মডিউল আমদানি আলাদা। যেমন:from email.mime.base import MIMEBase
বরুণ বালুপুরী

27
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
import smtplib

msg = MIMEMultipart()
msg.attach(MIMEText(file("text.txt").read()))
msg.attach(MIMEImage(file("image.png").read()))

# to send
mailer = smtplib.SMTP()
mailer.connect()
mailer.sendmail(from_, to, msg.as_string())
mailer.close()

এখান থেকে অভিযোজিত ।


আমি যা খুঁজছি তা পুরোপুরি নয়। ফাইলটি একটি ইমেলের মূল অংশ হিসাবে প্রেরণ করা হয়েছিল। And ও line লাইনে বন্ধনীও রয়েছে, আমি অনুভব করি যে আমরা যদিও কাছে
রিচার্ড

2
ইমেলগুলি সরল পাঠ্য এবং এটিই smtplibসমর্থন করে। সংযুক্তিগুলি প্রেরণ করতে, আপনি সেগুলিকে একটি MIME বার্তা হিসাবে এনকোড করুন এবং তাদেরকে একটি সরল পাঠ্য ইমেল প্রেরণ করুন। একটি নতুন অজগর ইমেল মডিউল আছে, যদিও: docs.python.org/library/email.mime.html
ক্যাট্রিয়েল

@ কাত্রিয়েনল্লেক্স একটি কার্যকারী উদাহরণ আমার বোঝার জন্য আরও অনেক দূর এগিয়ে যাবে
রিচার্ড

1
আপনি কি নিশ্চিত যে উপরের উদাহরণটি কাজ করে না? আমার হাতে কোনও এসএমটিপি সার্ভার নেই, তবে আমি তাকিয়েছি msg.as_string()এবং এটি অবশ্যই একটি মাইএম মাল্টিপার্ট ইমেলের বডির মতো দেখাচ্ছে। উইকিপিডিয়া ব্যাখ্যা এমআইএমই: en.wikipedia.org/wiki/MIME
Katriel

1
Line 6, in <module> msg.attach(MIMEText(file("text.txt").read())) NameError: name 'file' is not defined
বেনজামিন

7

অজগর 3 এর সাথে আরেকটি উপায় (যদি কেউ সন্ধান করছেন):

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

fromaddr = "sender mail address"
toaddr = "receiver mail address"

msg = MIMEMultipart()

msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "SUBJECT OF THE EMAIL"

body = "TEXT YOU WANT TO SEND"

msg.attach(MIMEText(body, 'plain'))

filename = "fileName"
attachment = open("path of file", "rb")

part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
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, "sender mail password")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

আপনার Gmail অ্যাকাউন্টে " কম সুরক্ষিত অ্যাপ্লিকেশনগুলি " মঞ্জুরি দেওয়ার বিষয়টি নিশ্চিত করুন


6

জিথেল সংস্করণ, পাইথন ৩.6 এর সাথে কাজ করে (মনে রাখবেন যে এটির থেকে এসএমটিপি-এর মাধ্যমে ইমেল প্রেরণ করতে আপনার জিমেইল সেটিংস পরিবর্তন করতে হবে:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from os.path import basename


def send_mail(send_from: str, subject: str, text: str, 
send_to: list, files= None):

    send_to= default_address if not send_to else send_to

    msg = MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = ', '.join(send_to)  
    msg['Subject'] = subject

    msg.attach(MIMEText(text))

    for f in files or []:
        with open(f, "rb") as fil: 
            ext = f.split('.')[-1:]
            attachedfile = MIMEApplication(fil.read(), _subtype = ext)
            attachedfile.add_header(
                'content-disposition', 'attachment', filename=basename(f) )
        msg.attach(attachedfile)


    smtp = smtplib.SMTP(host="smtp.gmail.com", port= 587) 
    smtp.starttls()
    smtp.login(username,password)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.close()

ব্যবহার:

username = 'my-address@gmail.com'
password = 'top-secret'
default_address = ['my-address2@gmail.com'] 

send_mail(send_from= username,
subject="test",
text="text",
send_to= None,
files= # pass a list with the full filepaths here...
)

অন্য কোনও ইমেল সরবরাহকারীর সাথে ব্যবহার করতে, কেবল এসএমটিপি কনফিগারেশন পরিবর্তন করুন।


4

আমি যে সহজ কোডটি পেতে পারি তা হ'ল:

#for attachment email
from django.core.mail import EmailMessage

    def attachment_email(request):
            email = EmailMessage(
            'Hello', #subject
            'Body goes here', #body
            'MyEmail@MyEmail.com', #from
            ['SendTo@SendTo.com'], #to
            ['bcc@example.com'], #bcc
            reply_to=['other@example.com'],
            headers={'Message-ID': 'foo'},
            )

            email.attach_file('/my/path/file')
            email.send()

এটি অফিসিয়াল জ্যাঙ্গো ডকুমেন্টেশনের উপর ভিত্তি করে তৈরি হয়েছিল


3
আপনার ক্ষেত্রে ইমেল প্রেরণের জন্য আপনাকে জ্যাঙ্গো ইনস্টল করতে হবে ... এটি সঠিকভাবে প্রশ্নের উত্তর দেয় না
comte

@ কমট 'কোজ পাইথন কেবল জ্যাঙ্গোর জন্য কখনও ব্যবহৃত হয়, তাই না?
অ্যাসপেক্স

5
@Auspex আমার পয়েন্ট ;-) এটি সম্পাদনা করতে কনফিগ ফাইল LibreOffice এর ইনস্টল করার মত যে ...
Comte

আমি এটি সহায়ক এবং তথ্যবহুল বলে মনে করি। কেবলমাত্র একটি মডিউল আমদানি করা হয়েছে এবং মাইম হুপের অন্যরাও লাফিয়ে ওঠার তুলনায় এর ব্যবহার বেশ সহজ এবং মার্জিত। আপনার উদাহরণে, বিপরীতে, লিবারঅফিস নোটপ্যাডের চেয়ে ব্যবহার করা আরও বেশি কঠিন।
বজর্কস এক নম্বর ভক্ত

4

অন্যান্য উত্তরগুলি দুর্দান্ত, যদিও কেউ বিকল্পের সন্ধানের ক্ষেত্রে আমি এখনও একটি ভিন্ন পদ্ধতির ভাগ করতে চেয়েছিলাম।

এখানে মূল পার্থক্য হ'ল এই পদ্ধতিটি ব্যবহার করে আপনি আপনার বার্তা ফর্ম্যাট করতে HTML / CSS ব্যবহার করতে পারেন, যাতে আপনি সৃজনশীল পেতে পারেন এবং আপনার ইমেলটিতে কিছু স্টাইলিং দিতে পারেন। যদিও আপনি এইচটিএমএল ব্যবহারের জন্য বল প্রয়োগ করা হয়নি তবে আপনি কেবল কেবল সরল পাঠ্য ব্যবহার করতে পারেন।

লক্ষ্য করুন যে এই ফাংশনটি একাধিক প্রাপকদের ইমেল প্রেরণকে গ্রহণ করে এবং একাধিক ফাইল সংযুক্ত করার অনুমতি দেয়।

আমি কেবল পাইথন 2 এ চেষ্টা করেছি, তবে আমি মনে করি এটি 3 তেও ঠিক কাজ করা উচিত:

import os.path
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

def send_email(subject, message, from_email, to_email=[], attachment=[]):
    """
    :param subject: email subject
    :param message: Body content of the email (string), can be HTML/CSS or plain text
    :param from_email: Email address from where the email is sent
    :param to_email: List of email recipients, example: ["a@a.com", "b@b.com"]
    :param attachment: List of attachments, exmaple: ["file1.txt", "file2.txt"]
    """
    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = from_email
    msg['To'] = ", ".join(to_email)
    msg.attach(MIMEText(message, 'html'))

    for f in attachment:
        with open(f, 'rb') as a_file:
            basename = os.path.basename(f)
            part = MIMEApplication(a_file.read(), Name=basename)

        part['Content-Disposition'] = 'attachment; filename="%s"' % basename
        msg.attach(part)

    email = smtplib.SMTP('your-smtp-host-name.com')
    email.sendmail(from_email, to_email, msg.as_string())

আশা করি এটা কাজে লাগবে! :-)


2
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
import mimetypes
import email.mime.application

smtp_ssl_host = 'smtp.gmail.com'  # smtp.mail.yahoo.com
smtp_ssl_port = 465
s = smtplib.SMTP_SSL(smtp_ssl_host, smtp_ssl_port)
s.login(email_user, email_pass)


msg = MIMEMultipart()
msg['Subject'] = 'I have a picture'
msg['From'] = email_user
msg['To'] = email_user

txt = MIMEText('I just bought a new camera.')
msg.attach(txt)

filename = 'introduction-to-algorithms-3rd-edition-sep-2010.pdf' #path to file
fo=open(filename,'rb')
attach = email.mime.application.MIMEApplication(fo.read(),_subtype="pdf")
fo.close()
attach.add_header('Content-Disposition','attachment',filename=filename)
msg.attach(attach)
s.send_message(msg)
s.quit()

ব্যাখ্যার জন্য, আপনি এই লিঙ্কটি সঠিকভাবে ব্যাখ্যা করতে পারেন এই লিঙ্কটি ব্যবহার করতে পারেন https://medium.com/@sdoshi579/to-send-an-email-along-with-attachment- using-smtp- 7852e77623


2
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
import smtplib

msg = MIMEMultipart()

password = "password"
msg['From'] = "from_address"
msg['To'] = "to_address"
msg['Subject'] = "Attached Photo"
msg.attach(MIMEImage(file("abc.jpg").read()))
file = "file path"
fp = open(file, 'rb')
img = MIMEImage(fp.read())
fp.close()
msg.attach(img)
server = smtplib.SMTP('smtp.gmail.com: 587')
server.starttls()
server.login(msg['From'], password)
server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()

2
হাই, স্বাগতম, আরও ভাল বোঝার জন্য কোনও প্রশ্নের উত্তর দেওয়ার সময় দয়া করে সর্বদা আপনার উত্তরটির ব্যাখ্যা পোস্ট করুন
আলী

0

নীচে আমি এখানে সকারপ্লেয়ারের পোস্ট থেকে যা পেয়েছি তার সংমিশ্রণ এবং নীচের লিঙ্কটি আমার জন্য একটি এক্সএলএক্সএক্স ফাইল সংযুক্ত করা সহজ করেছে। এখানে পাওয়া গেছে

file = 'File.xlsx'
username=''
password=''
send_from = ''
send_to = 'recipient1 , recipient2'
Cc = 'recipient'
msg = MIMEMultipart()
msg['From'] = send_from
msg['To'] = send_to
msg['Cc'] = Cc
msg['Date'] = formatdate(localtime = True)
msg['Subject'] = ''
server = smtplib.SMTP('smtp.gmail.com')
port = '587'
fp = open(file, 'rb')
part = MIMEBase('application','vnd.ms-excel')
part.set_payload(fp.read())
fp.close()
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment', filename='Name File Here')
msg.attach(part)
smtp = smtplib.SMTP('smtp.gmail.com')
smtp.ehlo()
smtp.starttls()
smtp.login(username,password)
smtp.sendmail(send_from, send_to.split(',') + msg['Cc'].split(','), msg.as_string())
smtp.quit()

0

আমার কোড দিয়ে আপনি জিমেইল ব্যবহার করে ইমেল সংযুক্তি প্রেরণ করতে পারেন আপনার প্রয়োজন হবে:

আপনার জিমেইল ঠিকানাটি " আপনার এসএমটিপি ইমেইল এখানে " সেট করুন

আপনার জিমেইল অ্যাকাউন্টের পাসওয়ার্ড " আপনার এসএমপি পাসওয়ার্ড এখানে "

ইন ___EMAIL MESSAGE_ গ্রহণ করতে অংশ গন্তব্য ইমেল ঠিকানা সেট করতে হবে।

অ্যালার্ম বিজ্ঞপ্তি বিষয়,

কেউ ঘরে hasুকেছে, ছবি লাগানো শরীর

["/home/pi/webcam.jpg"] একটি চিত্র সংযুক্তি।

#!/usr/bin/env python
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os

USERNAME = "___YOUR SMTP EMAIL HERE___"
PASSWORD = "__YOUR SMTP PASSWORD HERE___"

def sendMail(to, subject, text, files=[]):
    assert type(to)==list
    assert type(files)==list

    msg = MIMEMultipart()
    msg['From'] = USERNAME
    msg['To'] = COMMASPACE.join(to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach( MIMEText(text) )

    for file in files:
        part = MIMEBase('application', "octet-stream")
        part.set_payload( open(file,"rb").read() )
        Encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"'
                       % os.path.basename(file))
        msg.attach(part)

    server = smtplib.SMTP('smtp.gmail.com:587')
    server.ehlo_or_helo_if_needed()
    server.starttls()
    server.ehlo_or_helo_if_needed()
    server.login(USERNAME,PASSWORD)
    server.sendmail(USERNAME, to, msg.as_string())
    server.quit()

sendMail( ["___EMAIL TO RECEIVE THE MESSAGE__"],
        "Alarm notification",
        "Someone has entered the room, picture attached",
        ["/home/pi/webcam.jpg"] )

অনেক দিন ধরে দেখা নেই! আপনি আপনার কোডটিকে যথাযথভাবে বিশিষ্ট করছেন এবং সরাসরি উত্তরে অন্তর্ভুক্ত করছেন তা দেখতে ভাল। তবে, একাধিক প্রশ্নের একই উত্তর কোডটি অনুলিপি করে পেস্ট করার বিষয়টি সাধারণত নষ্ট হয়। যদি সেগুলি সত্যিই একই সমাধানে সমাধান করা যায় তবে আপনার পরিবর্তে প্রশ্নগুলি সদৃশ হিসাবে ফ্ল্যাগ করা উচিত ।
দাস_গীক

0

আপনি নিজের ই-মেইলে আপনার সংযুক্তির প্রকারটি নির্দিষ্ট করতে পারেন, উদাহরণ হিসাবে আমি পিডিএফ ব্যবহার করেছি:

def send_email_pdf_figs(path_to_pdf, subject, message, destination, password_path=None):
    ## credits: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script
    from socket import gethostname
    #import email
    from email.mime.application import MIMEApplication
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    import smtplib
    import json

    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    with open(password_path) as f:
        config = json.load(f)
        server.login('me@gmail.com', config['password'])
        # Craft message (obj)
        msg = MIMEMultipart()

        message = f'{message}\nSend from Hostname: {gethostname()}'
        msg['Subject'] = subject
        msg['From'] = 'me@gmail.com'
        msg['To'] = destination
        # Insert the text to the msg going by e-mail
        msg.attach(MIMEText(message, "plain"))
        # Attach the pdf to the msg going by e-mail
        with open(path_to_pdf, "rb") as f:
            #attach = email.mime.application.MIMEApplication(f.read(),_subtype="pdf")
            attach = MIMEApplication(f.read(),_subtype="pdf")
        attach.add_header('Content-Disposition','attachment',filename=str(path_to_pdf))
        msg.attach(attach)
        # send msg
        server.send_message(msg)

অনুপ্রেরণা / ক্রেডিট হবে: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.