This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: SMTP with Sqlite3 file attached problem
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 2.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: berker.peksag, jesstess, murilobr, r.david.murray
Priority: normal Keywords:

Created on 2010-07-19 01:55 by murilobr, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
test.db murilobr, 2010-07-19 01:55 Database to attach to email example
test_problem.db murilobr, 2010-07-20 00:27 file received with problem
Messages (12)
msg110707 - (view) Author: Murilo da Silva (murilobr) Date: 2010-07-19 01:55
I'm sending e-mail using SMTP. This e-mail is sent with an Sqlite3 database attached.
When I send the e-mail in the same domain the attachment arrives OK, but if I send it to a different domain it comes crashed!!
The file is added with some base64 code...I don't have any ideia why!

The code mail.py:

import smtplib
import os
import mimetypes
import base64

from email import encoders
from email.message import Message
from email.mime.base import MIMEBase
from email.mime.nonmultipart import MIMENonMultipart
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.audio import MIMEAudio
from email.mime.image import MIMEImage
from email.mime.message import MIMEMessage
from email.mime.text import MIMEText

class SendMail:
    def __init__(self):
        self.body = []
        self.attachments = []
    
    def add_body(self, _text, _subtype='plain', _charset='us-ascii'):
        part = MIMEText(_text+"\n", _subtype, _charset)
        self.body.append(part)

    def add_attach(self, _file_path, _subtype='octet-stream', _encoder=encoders.encode_base64, **_params):
        path = _file_path
        ctype, encoding = mimetypes.guess_type(path)
        if ctype is None or encoding is not None:
            ctype = 'application/octet-stream'
        maintype, subtype = ctype.split('/', 1)
        if maintype == 'text':
            fp = open(path)
            part = MIMEText(fp.read(), _subtype=subtype)
            fp.close()
        elif maintype == 'image':
            fp = open(path, 'rb')
            part = MIMEImage(fp.read(), _subtype=subtype)
            fp.close()
        elif maintype == 'audio':
            fp = open(path, 'rb')
            part = MIMEAudio(fp.read(), _subtype=subtype)
            fp.close()
        else:
            fp = open(path, 'rb')
            part = MIMEBase(maintype, subtype)
            part.set_payload(fp.read())
            fp.close()
            # Encode the payload using Base64
            encoders.encode_base64(part)
            part.set_payload(part.get_payload().decode())
        
        part.add_header('Content-Disposition', 'attachment', filename = path.split(os.sep)[-1])
        self.attachments.append(part)      

    def send_now(self, mail_from, mail_to, subject, multipart_subtype='mixed', host=None, port=25, auth=False, user="", passw=""):
        msg = MIMEMultipart(multipart_subtype)
        msg['Subject'] = subject
        msg['From'] = mail_from
        if type(mail_to) is list:
            msg['To'] = ", ".join(mail_to)
        else:
            msg['To'] = mail_to

        for b in self.body:
            msg.attach(b)

        for att in self.attachments:
            msg.attach(att)
        
        try:
            mailserver = smtplib.SMTP(host, port)
            #mailserver.set_debuglevel(1)
            mailserver.ehlo() 
            mailserver.starttls() 
            mailserver.ehlo()
            if auth:
                mailserver.login(user, passw) 

            mailserver.sendmail(mail_from, mail_to, msg.as_string())
            
            mailserver.close()
        
            return True
        except Exception as e:
            print(e)
            return False

The database to attach is in the final.

The example:
s = SendMail()
s.add_body("test")
s.add_attach(os.path.abspath("test.db"))
s.send_now("test@domain1.com", "test@domain2.com", "test", host="smtp.domain1.com", port=25, auth=True, user="user", passw="pass")
msg110745 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-07-19 12:54
"It crashed" is not enough information to diagnose your problem or whether or not there is a Python bug here.  Can you provide additional information please?  A minimal test case that reproduces the problem would be best.
msg110841 - (view) Author: Murilo da Silva (murilobr) Date: 2010-07-19 23:34
SOLVED!! MAIL SERVER BAD CONFIGURED.

Thanks and sorry.
msg110843 - (view) Author: Murilo da Silva (murilobr) Date: 2010-07-20 00:27
It's not just a bad configured server.
If I send the file with a mail client the file is sent ok.
But Im having a problem just with my server.
For example:
1 - If i send the file attached here test.db (SQLite3) from a gmail server to a yahoo server, the e-mail arrives ok.

2 - If i send the file test.db from my mail server to my mail server, the e-mail arrives ok too (independent of the account name).

3 - If i send the file test.db from gmail to my mail server the file arrives with bigger size (4kb original - 5.1kb with problem)

The log to the first (1) situation:

send: 'ehlo mmac.local\r\n'
reply: b'250-mx.google.com at your service, [189.5.249.91]\r\n'
reply: b'250-SIZE 35651584\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-STARTTLS\r\n'
reply: b'250 ENHANCEDSTATUSCODES\r\n'
reply: retcode (250); Msg: b'mx.google.com at your service, [189.5.249.91]\nSIZE 35651584\n8BITMIME\nSTARTTLS\nENHANCEDSTATUSCODES'
send: 'STARTTLS\r\n'
reply: b'220 2.0.0 Ready to start TLS\r\n'
reply: retcode (220); Msg: b'2.0.0 Ready to start TLS'
send: 'ehlo mmac.local\r\n'
reply: b'250-mx.google.com at your service, [189.5.249.91]\r\n'
reply: b'250-SIZE 35651584\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-AUTH LOGIN PLAIN XOAUTH\r\n'
reply: b'250 ENHANCEDSTATUSCODES\r\n'
reply: retcode (250); Msg: b'mx.google.com at your service, [189.5.249.91]\nSIZE 35651584\n8BITMIME\nAUTH LOGIN PLAIN XOAUTH\nENHANCEDSTATUSCODES'
send: 'AUTH PLAIN AG11cmlsb2JyQGdtYWlsLmNvbQA2NHglOCp3Vnc4OQ==\r\n'
reply: b'235 2.7.0 Accepted\r\n'
reply: retcode (235); Msg: b'2.7.0 Accepted'
send: 'mail FROM:<murilobr@gmail.com> size=5963\r\n'
reply: b'250 2.1.0 OK h41sm27362860qcz.25\r\n'
reply: retcode (250); Msg: b'2.1.0 OK h41sm27362860qcz.25'
send: 'rcpt TO:<murilosilvabr@yahoo.com.br>\r\n'
reply: b'250 2.1.5 OK h41sm27362860qcz.25\r\n'
reply: retcode (250); Msg: b'2.1.5 OK h41sm27362860qcz.25'
send: 'data\r\n'
reply: b'354  Go ahead h41sm27362860qcz.25\r\n'
reply: retcode (354); Msg: b'Go ahead h41sm27362860qcz.25'
data: (354, b'Go ahead h41sm27362860qcz.25')
send: 'Content-Type: multipart/mixed; boundary="===============0772040488=="\r\nMIME-Version: 1.0\r\nSubject: teste\r\nFrom: murilobr@gmail.com\r\nTo: murilosilvabr@yahoo.com.br\r\n\r\n--===============0772040488==\r\nContent-Type: text/plain; charset="us-ascii"\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: 7bit\r\n\r\nteste\r\n\r\n--===============0772040488==\r\nContent-Type: application/octet-stream\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename="test.db"\r\n\r\n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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0CAx8BbWFpbF9zZW50AwwBAx0BYmtwX2RvbmUDDQAAAAMDdgAD0gOkA3YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwDBQABJUEDZGFzQGRhZGEuY29tMjAxMC0wNy0xNyAxNDo1MToyNy4wNTk2NzEsAgUAASVBAmRhc0BkYWRhLmNvbTIwMTAtMDctMTcgMTQ6NTE6MjYuMDk0NzU4LAEFAAElQQFkYXNAZGFkYS5jb20yMDEwLTA3LTE3IDE0OjQ0OjI0Ljk3MzUxMg==\r\n--===============0772040488==--\r\n.\r\n'
reply: b'250 2.0.0 OK 1279585260 h41sm27362860qcz.25\r\n'
reply: retcode (250); Msg: b'2.0.0 OK 1279585260 h41sm27362860qcz.25'
data: (250, b'2.0.0 OK 1279585260 h41sm27362860qcz.25')

The log to the second (2) situation:

send: 'ehlo mmac.local\r\n'
reply: b'250-pleskwin41.hospedagemdesites.ws Hello mmac.local [189.5.249.91], pleased to meet you.\r\n'
reply: b'250-ENHANCEDSTATUSCODES\r\n'
reply: b'250-SIZE 31457280\r\n'
reply: b'250-EXPN\r\n'
reply: b'250-ETRN\r\n'
reply: b'250-ATRN\r\n'
reply: b'250-DSN\r\n'
reply: b'250-CHECKPOINT\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-AUTH CRAM-MD5 PLAIN LOGIN DIGEST-MD5\r\n'
reply: b'250-STARTTLS\r\n'
reply: b'250 HELP\r\n'
reply: retcode (250); Msg: b'pleskwin41.hospedagemdesites.ws Hello mmac.local [189.5.249.91], pleased to meet you.\nENHANCEDSTATUSCODES\nSIZE 31457280\nEXPN\nETRN\nATRN\nDSN\nCHECKPOINT\n8BITMIME\nAUTH CRAM-MD5 PLAIN LOGIN DIGEST-MD5\nSTARTTLS\nHELP'
send: 'STARTTLS\r\n'
reply: b'220 2.0.0 Ready to start TLS\r\n'
reply: retcode (220); Msg: b'2.0.0 Ready to start TLS'
send: 'ehlo mmac.local\r\n'
reply: b'250-pleskwin41.hospedagemdesites.ws Hello mmac.local [189.5.249.91], pleased to meet you.\r\n'
reply: b'250-ENHANCEDSTATUSCODES\r\n'
reply: b'250-SIZE 31457280\r\n'
reply: b'250-EXPN\r\n'
reply: b'250-ETRN\r\n'
reply: b'250-ATRN\r\n'
reply: b'250-DSN\r\n'
reply: b'250-CHECKPOINT\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-AUTH CRAM-MD5 PLAIN LOGIN DIGEST-MD5\r\n'
reply: b'250 HELP\r\n'
reply: retcode (250); Msg: b'pleskwin41.hospedagemdesites.ws Hello mmac.local [189.5.249.91], pleased to meet you.\nENHANCEDSTATUSCODES\nSIZE 31457280\nEXPN\nETRN\nATRN\nDSN\nCHECKPOINT\n8BITMIME\nAUTH CRAM-MD5 PLAIN LOGIN DIGEST-MD5\nHELP'
send: 'AUTH CRAM-MD5\r\n'
reply: b'334 PDIwMTAwNzE5MjEyMjI4QHBsZXNrd2luNDEuaG9zcGVkYWdlbWRlc2l0ZXMud3M+\r\n'
reply: retcode (334); Msg: b'PDIwMTAwNzE5MjEyMjI4QHBsZXNrd2luNDEuaG9zcGVkYWdlbWRlc2l0ZXMud3M+'
send: 'cm9ib3RAamttZWRpY2FtZW50b3MuY29tLmJyIGQwZmQwNjhiZGYxMGYwNGUxZDgyNmY5ZDE0ODJlNDk1\r\n'
reply: b'235 2.0.0 Authentication successful\r\n'
reply: retcode (235); Msg: b'2.0.0 Authentication successful'
send: 'mail FROM:<robot@jkmedicamentos.com.br> size=5974\r\n'
reply: b'250 2.1.0 <robot@jkmedicamentos.com.br>... Sender ok\r\n'
reply: retcode (250); Msg: b'2.1.0 <robot@jkmedicamentos.com.br>... Sender ok'
send: 'rcpt TO:<murilo@jkmedicamentos.com.br>\r\n'
reply: b'250 2.1.5 <murilo@jkmedicamentos.com.br>... Recipient ok\r\n'
reply: retcode (250); Msg: b'2.1.5 <murilo@jkmedicamentos.com.br>... Recipient ok'
send: 'data\r\n'
reply: b'354 Enter mail, end with "." on a line by itself\r\n'
reply: retcode (354); Msg: b'Enter mail, end with "." on a line by itself'
data: (354, b'Enter mail, end with "." on a line by itself')
send: 'Content-Type: multipart/mixed; boundary="===============1936084591=="\r\nMIME-Version: 1.0\r\nSubject: teste\r\nFrom: robot@jkmedicamentos.com.br\r\nTo: murilo@jkmedicamentos.com.br\r\n\r\n--===============1936084591==\r\nContent-Type: text/plain; charset="us-ascii"\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: 7bit\r\n\r\nteste\r\n\r\n--===============1936084591==\r\nContent-Type: application/octet-stream\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename="test.db"\r\n\r\n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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0CAx8BbWFpbF9zZW50AwwBAx0BYmtwX2RvbmUDDQAAAAMDdgAD0gOkA3YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwDBQABJUEDZGFzQGRhZGEuY29tMjAxMC0wNy0xNyAxNDo1MToyNy4wNTk2NzEsAgUAASVBAmRhc0BkYWRhLmNvbTIwMTAtMDctMTcgMTQ6NTE6MjYuMDk0NzU4LAEFAAElQQFkYXNAZGFkYS5jb20yMDEwLTA3LTE3IDE0OjQ0OjI0Ljk3MzUxMg==\r\n--===============1936084591==--\r\n.\r\n'
reply: b'250 2.6.0 5994 bytes received in 00:00:00; Message id CHQ92029 accepted for delivery\r\n'
reply: retcode (250); Msg: b'2.6.0 5994 bytes received in 00:00:00; Message id CHQ92029 accepted for delivery'
data: (250, b'2.6.0 5994 bytes received in 00:00:00; Message id CHQ92029 accepted for delivery')

The log to the third (3) situation:

send: 'ehlo mmac.local\r\n'
reply: b'250-mx.google.com at your service, [189.5.249.91]\r\n'
reply: b'250-SIZE 35651584\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-STARTTLS\r\n'
reply: b'250 ENHANCEDSTATUSCODES\r\n'
reply: retcode (250); Msg: b'mx.google.com at your service, [189.5.249.91]\nSIZE 35651584\n8BITMIME\nSTARTTLS\nENHANCEDSTATUSCODES'
send: 'STARTTLS\r\n'
reply: b'220 2.0.0 Ready to start TLS\r\n'
reply: retcode (220); Msg: b'2.0.0 Ready to start TLS'
send: 'ehlo mmac.local\r\n'
reply: b'250-mx.google.com at your service, [189.5.249.91]\r\n'
reply: b'250-SIZE 35651584\r\n'
reply: b'250-8BITMIME\r\n'
reply: b'250-AUTH LOGIN PLAIN XOAUTH\r\n'
reply: b'250 ENHANCEDSTATUSCODES\r\n'
reply: retcode (250); Msg: b'mx.google.com at your service, [189.5.249.91]\nSIZE 35651584\n8BITMIME\nAUTH LOGIN PLAIN XOAUTH\nENHANCEDSTATUSCODES'
send: 'AUTH PLAIN AG11cmlsb2JyQGdtYWlsLmNvbQA2NHglOCp3Vnc4OQ==\r\n'
reply: b'235 2.7.0 Accepted\r\n'
reply: retcode (235); Msg: b'2.7.0 Accepted'
send: 'mail FROM:<murilobr@gmail.com> size=5965\r\n'
reply: b'250 2.1.0 OK h20sm27329252qcm.45\r\n'
reply: retcode (250); Msg: b'2.1.0 OK h20sm27329252qcm.45'
send: 'rcpt TO:<murilo@jkmedicamentos.com.br>\r\n'
reply: b'250 2.1.5 OK h20sm27329252qcm.45\r\n'
reply: retcode (250); Msg: b'2.1.5 OK h20sm27329252qcm.45'
send: 'data\r\n'
reply: b'354  Go ahead h20sm27329252qcm.45\r\n'
reply: retcode (354); Msg: b'Go ahead h20sm27329252qcm.45'
data: (354, b'Go ahead h20sm27329252qcm.45')
send: 'Content-Type: multipart/mixed; boundary="===============0728502331=="\r\nMIME-Version: 1.0\r\nSubject: teste\r\nFrom: murilobr@gmail.com\r\nTo: murilo@jkmedicamentos.com.br\r\n\r\n--===============0728502331==\r\nContent-Type: text/plain; charset="us-ascii"\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: 7bit\r\n\r\nteste\r\n\r\n--===============0728502331==\r\nContent-Type: application/octet-stream\r\nMIME-Version: 1.0\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename="test.db"\r\n\r\n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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0CAx8BbWFpbF9zZW50AwwBAx0BYmtwX2RvbmUDDQAAAAMDdgAD0gOkA3YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwDBQABJUEDZGFzQGRhZGEuY29tMjAxMC0wNy0xNyAxNDo1MToyNy4wNTk2NzEsAgUAASVBAmRhc0BkYWRhLmNvbTIwMTAtMDctMTcgMTQ6NTE6MjYuMDk0NzU4LAEFAAElQQFkYXNAZGFkYS5jb20yMDEwLTA3LTE3IDE0OjQ0OjI0Ljk3MzUxMg==\r\n--===============0728502331==--\r\n.\r\n'
reply: b'250 2.0.0 OK 1279585489 h20sm27329252qcm.45\r\n'
reply: retcode (250); Msg: b'2.0.0 OK 1279585489 h20sm27329252qcm.45'
data: (250, b'2.0.0 OK 1279585489 h20sm27329252qcm.45')


Attached here the file with the problem.
test.db received in third situation.
msg110844 - (view) Author: Murilo da Silva (murilobr) Date: 2010-07-20 00:32
r.david.murray,

if more info is needed, please send me what kind.
msg110845 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-07-20 00:37
Well, in the information you just gave you don't explain how Python is involved, so that would be a good place to start.
msg110847 - (view) Author: Murilo da Silva (murilobr) Date: 2010-07-20 00:52
Ok, let me try.

I'm sending a mail using Python, as you can see the code in the first message.
I'm sending a file which is a SQLite database.
When I send the file from my SMTP server to any other or from any server to mine the file doesn't arrive as test.db attached here, but it arrives like test_problem.db.
But it arrives ok if I send from gmail to yahoo for example.

I want some help to discover what kind of problem is happening.
If Python is the problem or the server! But how can I say that my server has a problem if when I send this same file from my server no any other the file arrives ok.

The question is have something to do with Python to solve? Is it a bug?

Do you understand my point?

Thanks you very much for your time.
msg110848 - (view) Author: Murilo da Silva (murilobr) Date: 2010-07-20 00:57
"If Python is the problem or the server! But how can I say that my server has a problem if when I send this same file from my server no any other the file arrives ok."

The phrase above I want to say that when I send the same file using a mail client as Mail from Mac OSX, the file arrives ok.
msg110849 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-07-20 01:50
OK.  In your previous message you said the problem came when you sent "from gmail" to your server.  I guess that was a typo.

If you write the file generated by your python program to a file instead of sending it through your SMTP server, is it already incorrect?  If so, can you give me a little more information on *how* it is incorrect?
msg110851 - (view) Author: Murilo da Silva (murilobr) Date: 2010-07-20 02:08
I upload two files (test.db and test_problem.db).

The test.db is an SQLite which works ok (application/octet-stream), if I send it from:
- gmail to my server
- my server to gmail
- yahoo to my server
- my server to yahoo
using my python program to send mail with the file test.db attached, it arrives as the example test_problem.db uploaded.

But if I send test.db using a Mail Client by the 4 ways above, instead of my python program it arrives as test.db.

Do you understand??
Thank you for your time.
msg186803 - (view) Author: Jessica McKellar (jesstess) * (Python triager) Date: 2013-04-13 19:27
murilobr, thank you for the detailed and persistent bug report :)

I was not able to reproduce this issue when sending mail from myself to myself through an open Google SMTP server*, using either Python 2.7** or 3.1. Do you experience this issue with a GMail SMTP server? If not, this seems like something specific to your environment--perhaps a custom SMTP server you are using?

Unless someone can reproduce the issue, I recommend that we close this ticket.

* e.g. one from

$ nslookup
> set type=MX
> google.com
Server:192.168.1.1
Address:192.168.1.1#53
Non-authoritative answer:
google.commail exchanger = 10 aspmx.l.google.com.
google.commail exchanger = 50 alt4.aspmx.l.google.com.
google.commail exchanger = 20 alt1.aspmx.l.google.com.
google.commail exchanger = 30 alt2.aspmx.l.google.com.
google.commail exchanger = 40 alt3.aspmx.l.google.com.

** This is targeted at 3.1 but the example uses str.decode, which doesn't exist in Python 3, so I went back and checked on 2.7.
msg262528 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2016-03-27 17:56
> Unless someone can reproduce the issue, I recommend that we close this ticket.

I couldn't reproduce it either.
History
Date User Action Args
2022-04-11 14:57:03adminsetgithub: 53543
2016-03-27 17:56:41berker.peksagsetstatus: open -> closed
nosy: + berker.peksag
messages: + msg262528

2013-04-13 19:27:20jesstesssetnosy: + jesstess

messages: + msg186803
versions: + Python 2.7, - Python 3.1
2010-07-20 02:08:47murilobrsetmessages: + msg110851
2010-07-20 01:50:07r.david.murraysetmessages: + msg110849
2010-07-20 00:57:46murilobrsetmessages: + msg110848
2010-07-20 00:52:54murilobrsetmessages: + msg110847
2010-07-20 00:37:37r.david.murraysetmessages: + msg110845
2010-07-20 00:32:52murilobrsetmessages: + msg110844
2010-07-20 00:27:35murilobrsetstatus: closed -> open
files: + test_problem.db
messages: + msg110843
2010-07-20 00:23:11r.david.murraysetresolution: not a bug
stage: resolved
2010-07-19 23:34:10murilobrsetstatus: open -> closed

messages: + msg110841
2010-07-19 12:54:40r.david.murraysetnosy: + r.david.murray
messages: + msg110745
2010-07-19 02:02:48murilobrsettitle: SMTP cross-domain with Sqlite3 file attached problem -> SMTP with Sqlite3 file attached problem
2010-07-19 02:02:29murilobrsettitle: SMTP with Sqlite3 file attachment cross-domain problem -> SMTP cross-domain with Sqlite3 file attached problem
2010-07-19 02:01:37murilobrsettitle: SMTP with Sqlite3 file attachment -> SMTP with Sqlite3 file attachment cross-domain problem
2010-07-19 01:55:14murilobrcreate