MATLAB(R2016a)傳送QQ,163郵件
阿新 • • 發佈:2019-01-07
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