File Exchange

image thumbnail

Send email using CDO

version 1.5.0.0 (4.17 KB) by Aurelien Queffurust
Send HTML formatted mail using the free Microsoft mail component CDO

1 Download

Updated 30 Nov 2010

View License

CDO stands for Collaboration Data Objects which ships with Windows 2000, Windows XP, and Windows Server 2003.

Find below different scenarii in which using emailtool_nodisplay may be interesting .

% Usage 1 :

emailtool_nodisplay can be used to monitor usage of softwares in your company.
Example in a GUI you can add these lines in the openingfcn:

% username = getenv('USERNAME');
% if isempty(username)
% str = '!whoami';
% username = deblank(evalc(str));
% end
% if ispc
% try %#ok<TRYNC>
% emailtool_nodisplay([mfilename '@mycompany.com'],'myemail@mycompany.com','','',['used by ' username])
% end
% end

You will receive in your Microsoft Oulook Inbox an email letting you know that someone has started your software.

% Usage 2 :

emailtool_nodsiplay can be used to receive notifications if a
code/simulation fails in a try-catch statement for example
You could make the exception message caught in the body message.

% Usage 3 :
Can be used at the end of a successful compilation invoking MATLAB Compiler to automatically send a notification to your peers that a new code has been compiled.
You could send the verbose of mcc -mv in the body message.

% Usage 4 :

can be used to send emails from another sender (not advised except for joking!)

% Usage 5 :
can be used to send anonymous emails (idem not advised!)

Features:
- emailtool_nodisplay can send HTML messages.
- Messages can be sent to several recipients.

Syntax:
All the different syntaxes to run emailtool_nodisplay are documented in the header of M-file.

Example (shown in the screenshot) :
To receive an HTML email in both my Microsoft Outlook Inbox and my Yahoo Mail , I just typed:
>> from = 'MATLAB_Geeky_boy@magnitude-geo.com';
>> to = 'tug83@yahoo.fr';
>> CC = 'aurelien.queffurust@magnitude-geo.com';
>> subject = ['Mail sent via ' version('-release')];
>> attachments ={which('support'),which('why')};
>> messageHTML= ['<html>Please find enclosed the code of support .<br>' char(10),...
'<b>This email has been sent by a MATLAB code created by Aurelien!!</b></html>'];
>> emailtool_nodisplay(from,to,CC,'',subject,messageHTML,attachments,1)

When running the above code , I receive an email with 2 attached files (see screenshot) . The last input argument of emailtool_nodisplay tells my code that I want to send an HTML message . It allows to have the last line of body message in bold in this example.

Cite As

Aurelien Queffurust (2020). Send email using CDO (https://www.mathworks.com/matlabcentral/fileexchange/29421-send-email-using-cdo), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (6)

Joe H

Excellent contribution thank you, still works under Matlab R2014b with the small adjustments Martin provides to use for an SMTP server.

Martin

Martin

I use a similar approach to send mails via the CDO API, inspired by this submission.

To set CDO SMTP settings, some lines like the following can be added after "mail = h.CreateObject('CDO.Message');"

hCdoConfig = h.CreateObject('CDO.Configuration');
hCdoConfig.Fields.Item('http://schemas.microsoft.com/cdo/configuration/sendusing').set('Value', 2);
hCdoConfig.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver').set('Value', 'smtp.myserver.com')
hCdoConfig.Fields.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport').set('Value', 25);
hCdoConfig.Fields.Update;

mail.configuration = hCdoConfig;

More information on CDO settings (e.g. SMTP authorization) can be found in the MSDN library at http://msdn.microsoft.com/en-us/library/ms526318.aspx

Still works under MATLAB 8.0
This utility is used in my company to monitor which software is most used.

Jiong

Jiong

Hi Aurelien,
Thank you for sharing. I tried your code on Matlab 2010b with WinXP and Outlook 2007. The mail email was not sent. Here is the error msg:
"
The email has not been sent:
Invoke Error, Dispatch Exception:
Source: CDO.Message.1
Description: The "SendingUing" configuration value is invalid."

Would you mind giving any suggestion on this. I really want a way to send html email through Matlab without manually allowing in Outlook.

Thanks a lot!

Jiong

Updates

1.5.0.0

I 've just changed the title (was the M-file name before)

1.4.0.0

Add a screenshot

1.1.0.0

Adding some comments in description about implemented features and syntax.

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux