Hi All,

Request your help, the below code is working as expected, but when I receive the attachment, the attachment contains the orginal text plus some unwanted characters like below, can someone help me how to remove these unwanted characters.

Unwanted characters
This is a test documentoÞóÎ}ã¿xÛ]Zõ§ûwN¶÷ÆÝy·

Code:
import std.base64: Base64;
import std.container.array;
import std.conv : to;
import std.file: read;
import std.format : format;
import std.net.curl;
import std.path : baseName;
import std.uuid: randomUUID;
pragma(lib, "curl");

string Message(string To, string From, string Body, string Subject, string Filename, ubyte[] Content) {
Array!string headers;
string cid, msg, boundary = randomUUID().toString(), Fname = baseName(Filename);
const string crlf = "\r\n";
int Size = to!int(getSize(Filename));

    headers.insert("From: " ~ From );
    headers.insert("To: " ~ To );
    headers.insert("Subject: " ~ "Subject" );
    headers.insert("MIME-Version: 1.0");
headers.insert(format("Content-Type: multipart/mixed; boundary=\"%s\"\r\n", boundary));
    headers.insert("--" ~ boundary);
    headers.insert("Content-Type: text/html; charset=utf-8");
    headers.insert(crlf);
    headers.insert(Body);
    headers.insert(crlf);
    headers.insert("--" ~ boundary);
    headers.insert("Content-Type: text/plain");
    headers ~ ((cid !is null) ? "Content-ID: <" ~ cid ~ ">" : "");
    headers.insert("Content-Transfer-Encoding: base64");
headers.insert("Content-Disposition: attachment; filename=\"" ~ Fname ~ "\"");
    headers.insert(crlf);
    headers.insert(to!string(Base64.encode(Content)) ~ ".\r\n");
    headers.insert(crlf);
    headers.insert("--" ~ boundary ~ ".");

    msg.reserve(Size + Body.length);
    foreach(header; headers) { msg ~= header ~ "\r\n"; }
    if(msg.length > 0) { msg ~= "\r\n";}
    return(msg);

 }

 void main () {
 auto Filename = "C:\\Script\\New\\new.txt";
 auto Con = cast(ubyte[])read(Filename);
 auto smtp = SMTP("smtp://xxx.com");
 smtp.mailTo = "u...@ask.com";
 smtp.mailFrom = "ad...@ask.com";
smtp.message = Message("u...@ask.com", "ad...@ask.com", "Test", "TestMail", Filename, Con);
 smtp.perform();
}

From,
Vino.B

Reply via email to