mailsend icon indicating copy to clipboard operation
mailsend copied to clipboard

Send Calendar attachment fails

Open f-steff opened this issue 7 years ago • 1 comments

I started testing this with 1.19, but found multiple attach with individual enc-types was broken. Continued with 1.20b, which works where 1.19 didn't.

I'm attempting to replicate the way Outlook sends a meeting invitation. These messages contains three parts: text, html and an iCalendar entry. The relevant part of the received message looks like this:

Content-Type: multipart/alternative; boundary="_000_BN6PR1001MB2244A082AECBEA4A97C792B4E8690BN6PR1001MB2244_"

--_000_BN6PR1001MB2244A082AECBEA4A97C792B4E8690BN6PR1001MB2244_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

cut text

--_000_BN6PR1001MB2244A082AECBEA4A97C792B4E8690BN6PR1001MB2244_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

cut html

--_000_BN6PR1001MB2244A082AECBEA4A97C792B4E8690BN6PR1001MB2244_
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
Content-Transfer-Encoding: base64

cut Base64

--_000_BN6PR1001MB2244A082AECBEA4A97C792B4E8690BN6PR1001MB2244_--

I'm using this batch file to create and send the message:

mailsend1.20b.exe -smtp secret.smtp.net -port 25 ^
				 -v ^
				 -show-attach ^
				 -f [email protected] -v ^
				 -list_address Recipients.txt ^
				 -sub "TestSubject %TIME%" ^
				 -content-type "multipart/alternative" ^
				 ^
				 -enc-type "quoted-printable" ^
				 -cs "iso-8859-1" ^
				 -disposition "inline" ^
				 -mime-type "text/plain" ^
				 -attach ".\MailBody.txt" ^
				 ^
				 -enc-type "quoted-printable" ^
				 -cs "iso-8859-1" ^
				 -disposition "inline" ^
				 -mime-type "text/html" ^
				 -attach ".\MailBody.html" ^
				 ^
				 -enc-type "base64" ^
				 -cs "utf-8" ^
				 -disposition "inline" ^
				 -mime-type "text/calandar" ^
				 -attach ".\Maintenance.vcf" ^
				 -log mailsend.log

I've tried lots of setups, but I can't replicate the output from Outlook. Here are three attempts that illustrate my problems:

This includes both these lines in the mailsend call: -content-type "multipart/alternative" -disposition "inline"

The result is the html file visible when received in gmail - everything else is hidden.

Content-Type: multipart/alternative; boundary="CYjOYKy2hpqRM1b6"

--CYjOYKy2hpqRM1b6
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Cut text

--CYjOYKy2hpqRM1b6
Content-Type: text/html; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

cut html

--CYjOYKy2hpqRM1b6
Content-Type: text/calandar; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: base64

Cut base64

--CYjOYKy2hpqRM1b6--

This one includes only this line in the mailsend call: -content-type "multipart/alternative"

The result is an empty body with four!!! attachments (txt, html, vcf,html) when received in gmail - although the mail contents look differently:

Content-Type: multipart/alternative; boundary="CrEpabQ4ZeFcibBK"

--CrEpabQ4ZeFcibBK
Content-Type: text/plain; charset="iso-8859-1"; name="MailBody.txt"
Content-Disposition: attachment; filename="MailBody.txt"
Content-Transfer-Encoding: quoted-printable
Content-Description: MailBody.txt

Cut Text

--CrEpabQ4ZeFcibBK
Content-Type: text/html; charset="iso-8859-1"; name="MailBody.html"
Content-Disposition: attachment; filename="MailBody.html"
Content-Transfer-Encoding: quoted-printable
Content-Description: MailBody.html

Cut html

--CrEpabQ4ZeFcibBK
Content-Type: text/calandar; charset="utf-8"; name="Maintenance.vcf"
Content-Disposition: attachment; filename="Maintenance.vcf"
Content-Transfer-Encoding: base64
Content-Description: Maintenance.vcf

Cut base64
--CrEpabQ4ZeFcibBK--

This does not include any of these lines in the mailsend call: -content-type "multipart/alternative" -disposition "inline"

The result is an empty body with three attachments when received in gmail:

Content-Type: multipart/mixed; boundary="qsKyhPAprgCNKo9g"

--qsKyhPAprgCNKo9g
Content-Type: text/plain; charset="iso-8859-1"; name="MailBody.txt"
Content-Disposition: attachment; filename="MailBody.txt"
Content-Transfer-Encoding: quoted-printable
Content-Description: MailBody.txt

Cut text

--qsKyhPAprgCNKo9g
Content-Type: text/html; charset="iso-8859-1"; name="MailBody.html"
Content-Disposition: attachment; filename="MailBody.html"
Content-Transfer-Encoding: quoted-printable
Content-Description: MailBody.html

Cut html

--qsKyhPAprgCNKo9g
Content-Type: text/calandar; charset="utf-8"; name="Maintenance.vcf"
Content-Disposition: attachment; filename="Maintenance.vcf"
Content-Transfer-Encoding: base64
Content-Description: Maintenance.vcf

Cut base64

--qsKyhPAprgCNKo9g--

How can I do this? Is it even possible?

In fact, I know exactly how the message contents should be, so I was wondering if you would consider adding a way to specify the message contents as a raw text file?

And since I've been sending a lot of emails today to try to get this to work, I was also considering if you could add a -SaveTemporalyFileHereAndExit FilePath switch, which would be very handy for debugging message contents.

f-steff avatar Sep 12 '17 12:09 f-steff

Thanks for the report, will look at it as soon as get some time.

muquit avatar Sep 17 '17 02:09 muquit