1. 程式人生 > >MATLAB(R2016a)傳送QQ,163郵件

MATLAB(R2016a)傳送QQ,163郵件

MATLAB傳送163郵件

在例子上無需做太大修改,程式碼如下

function MySendMail
%163郵箱測試,傳送到自己成功,傳送到其他郵箱會被誤認為垃圾郵件而失敗
a=rand(100);
Datapath=[matlabroot,filesep,'mydata.mat'];
save(Datapath,'a');
MailAddress='[email protected]';
password='yourPassword';
setpref('Internet','E_mail',MailAddress);
setpref('Internet','SMTP_Server'
,'smtp.163.com'); setpref('Internet','SMTP_Username',MailAddress); setpref('Internet','SMTP_Password',password); props=java.lang.System.getProperties; props.setProperty('mail.smtp.auth','true'); props.setProperty('mail.smtp.socketFactory.class','javax.net.ssl.SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port'
,'994'); subject='我發的測試郵件'; content='你好,這份郵件是我用MATLAB發的,資料見附件'; sendmail('[email protected]',subject,content,Datapath);

MATLAB傳送QQ郵件

按照論壇的方法會報身份驗證失敗的錯誤,在QQ郵箱的設定裡看到“授權碼是QQ郵箱推出的,用於登入第三方客戶端的專用密碼”,進而將密碼替換16位授權碼,需要注意的是授權碼要用開啟了兩個SMTP服務後的授權碼。程式碼如下

function SendEmailDemo
%qq郵箱
mail = '[email protected]
'
; %qq地址 password='16位授權碼';%授權碼代替密碼 setpref('Internet','E_mail',mail); setpref('Internet','SMTP_Server','smtp.qq.com'); setpref('Internet','SMTP_Username',mail); setpref('Internet','SMTP_Password',password); props = java.lang.System.getProperties; props.setProperty('mail.smtp.auth','true'); props.setProperty('mail.smtp.socketFactory.class',... 'javax.net.ssl.SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port','465'); % 傳送郵件 sendmail('[email protected]','MATLAB發來的郵件', '從MATLAB發來的郵件');

end