Hi all,
I am unable to send mail using gmail mail server in ax 2012 r3. I already did R & D but the suggested solution did not worked. below i attached error window and email parameter setting as well as x++ code. I am getting error as below.
please suggest. need a help.
also i confused in email parameter form. what should we enter in username and password field. it would be our email id and password or current login id and password.(in my case i tried with both)
Here is code:
static client server void SendEMail(str _sender, str _receipient,str _cc, str emailbody, str _sub =" " )
{
str sender, receipent,cc, body, subject;
Set permissionSet;
System.Exception e;
str mailServer;
System.Net.Mail.SmtpClient mailClient;
System.Net.Mail.MailMessage mailMessage;
System.Net.Mail.MailAddress mailFrom;
System.Net.Mail.MailAddress mailTo;
System.Net.Mail.MailAddressCollection mailCCCollection;
System.Net.Mail.MailAddressCollection mailToCollection;
System.Net.Mail.AttachmentCollection mailAttachementCollection;
System.Net.Mail.Attachment mailAttachment;
int portNumber;
str userName;
str password;
str multiRecepient;
ListIterator iterator;
//List _list = new List(types::String);
List toList = new List(types::String);
List ccList = new List(types::String);
ListEnumerator le,lc;
container packedList;
System.Net.ICredentialsByHost networkCredential;
;
try
{
sender = _sender;
receipent = _receipient;
cc = _cc;
toList = Global::strSplit(receipent,";" );
ccList = Global::strSplit(cc,";" );
le = toList.getEnumerator();
le.moveNext();
subject = _sub;
body = emailbody;
permissionSet = new Set(Types::Class);
permissionSet.add(new InteropPermission(InteropKind::ClrInterop));
//permissionSet.add(new FileIOPermission(filename1, ‘rw’));
CodeAccessPermission::assertMultiple(permissionSet);
mailServer = SysEmaiLParameters::find(false).SMTPRelayServerName;
portNumber = SysEmaiLParameters::find(false).SMTPPortNumber;
userName = SysEmaiLParameters::find(false).SMTPUserName;
password = SysEmailParameters::password();
mailClient = new System.Net.Mail.SmtpClient(mailServer, portNumber);
networkCredential = new System.Net.NetworkCredential(userName, password);
mailClient.set_Credentials(networkCredential);
mailClient = new System.Net.Mail.SmtpClient(mailServer);
mailFrom = new System.Net.Mail.MailAddress(sender);
//mailTo = new System.Net.Mail.MailAddress(receipent);
mailTo = new System.Net.Mail.MailAddress(strLTrim(strRTrim(le.current())));
mailMessage = new System.Net.Mail.MailMessage(mailFrom, mailTo);
mailToCollection = mailMessage.get_To();
while (le.moveNext())
{
mailToCollection.Add(strLTrim(strRTrim(le.current())));
}
lc = ccList.getEnumerator();
mailCCCollection = mailMessage.get_CC();
while (lc.moveNext())
{
mailCCCollection.Add(strLTrim(strRTrim(lc.current())));
}
mailMessage.set_Priority(System.Net.Mail.MailPriority::High);
mailMessage.set_Subject(subject);
mailMessage.set_Body(body);
mailClient.Send(mailMessage);
mailMessage.Dispose();
CodeAccessPermission::revertAssert();
}
catch (Exception::CLRError)
{
e = ClrInterop::getLastException();
while (e)
{
info(e.get_Message());
e = e.get_InnerException();
}
CodeAccessPermission::revertAssert();
}
}