now I have solved the problem, the last issue was not a problem with adding an attachment.
In my database I had added two or more attachments with the same dotnet variable.
That doesn't work.
If you have more than one attachment you have to instance an attachment class for every file, then it works.
Here is a sample with three attachments.
Sample Code:
global variables----
SMTPMailSetup Record SMTP Mail Setup
SendResult Text
SmtpClient DotNet System.Net.Mail.SmtpClient.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
NetworkCredential DotNet System.Net.NetworkCredential.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
MailMessage DotNet System.Net.Mail.MailMessage.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
FromAddress DotNet System.Net.Mail.MailAddress.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
ReplyAddress DotNet System.Net.Mail.MailAddress.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Attachment DotNet System.Net.Mail.Attachment.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Attachment1 DotNet System.Net.Mail.Attachment.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Attachment2 DotNet System.Net.Mail.Attachment.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Mail Codeunit Mail
variables++++
Code----
OnRun()
// Test mail function
CreateMessageRT('sender name','navsmtptest@sample.localExchangeaccount','Ahmet.Gezer@myprovider.de','Testmail','Bodytext',FALSE,'ReplyTo-Name','ReplyTo@sample.de');
TrySendRT;
CheckValidEmailAddresses(Recipients : Text)
Local variables----
MailManagement Codeunit Mail Management
Local variables++++
MailManagement.CheckValidEmailAddresses(Recipients);
CreateMessageRT(SenderName : Text;SenderAddress : Text;Recipients : Text;Subject : Text;Body : Text;HtmlFormatted : Boolean;ReplyToName : Text;ReplyToAddress : Text)
IF Recipients <> '' THEN
CheckValidEmailAddresses(Recipients);
CheckValidEmailAddresses(SenderAddress);
SMTPMailSetup.GET;
SMTPMailSetup.TESTFIELD("SMTP Server");
IF NOT ISNULL(MailMessage) THEN BEGIN
MailMessage.Dispose;
CLEAR(MailMessage);
END;
SendResult := '';
MailMessage := MailMessage.MailMessage;
FromAddress := FromAddress.MailAddress(SenderAddress,SenderName);
MailMessage.From := FromAddress;
MailMessage."To".Clear;
MailMessage."To".Add(Recipients);
MailMessage.Subject := Subject;
IF HtmlFormatted THEN
MailMessage.Body := Mail.FormatTextForHtml(Body)
ELSE
MailMessage.Body := Body;
MailMessage.IsBodyHtml := HtmlFormatted;
ReplyAddress := ReplyAddress.MailAddress(ReplyToAddress,ReplyToName);
MailMessage.ReplyTo := ReplyAddress;
Attachment := Attachment.Attachment('C:\temp\Sample.pdf');
MailMessage.Attachments.Add(Attachment);
Attachment1 := Attachment1.Attachment('C:\temp\Sample1.pdf');
MailMessage.Attachments.Add(Attachment1);
Attachment2 := Attachment2.Attachment('C:\temp\Sample2.pdf');
MailMessage.Attachments.Add(Attachment2);
LOCAL TrySendRT() : Boolean
SMTPMailSetup.GET;
WITH SMTPMailSetup DO BEGIN
IF NOT ISNULL(SmtpClient) THEN BEGIN
SmtpClient.Dispose;
CLEAR(SmtpClient);
END;
SmtpClient := SmtpClient.SmtpClient("SMTP Server","SMTP Server Port");
SmtpClient.EnableSsl := "Secure Connection";
CASE Authentication OF
Authentication::Anonymous:
BEGIN
CLEAR(NetworkCredential);
SmtpClient.Credentials := NetworkCredential;
SmtpClient.UseDefaultCredentials := FALSE;
END;
Authentication::NTLM:
BEGIN
CLEAR(NetworkCredential);
SmtpClient.Credentials := NetworkCredential;
SmtpClient.UseDefaultCredentials := TRUE;
END;
Authentication::Basic:
BEGIN
IF "User ID" <> '' THEN BEGIN
SmtpClient.UseDefaultCredentials := FALSE;
NetworkCredential := NetworkCredential.NetworkCredential("User ID", Password);
SmtpClient.Credentials := NetworkCredential;
END ELSE BEGIN
CLEAR(NetworkCredential);
SmtpClient.Credentials := NetworkCredential;
SmtpClient.UseDefaultCredentials := TRUE;
END
END;
END;
IF ISNULL(MailMessage) THEN BEGIN
SendResult := 'Mail was not created';
EXIT(FALSE);
END;
SmtpClient.Send(MailMessage);
MailMessage.Dispose;
SmtpClient.Dispose;
CLEAR(MailMessage);
CLEAR(SmtpClient);
END;
Code++++