matlab读取邮件,在matlab中发邮件~~~

下午學習MATLAB的時候,翻看Demo文檔,想查找些玩樂的代碼,比如說用MATLAB調用windows下面的應用程序和系統進程,比如要運行電腦中的電影或者歌曲,

用system如下:

system('E:\娱乐\电影\放牛班的春天 唱诗班男孩.rmvb')

程序運行開,MATLAB會佔用內存,一直busy,即要想關閉MATLAB首先要關閉所運行程序,結束之後返回ans=0,說明成功找到并運行。顯然這樣很浪費資源,因此采用winopen,如下:

winopen('E:\娱乐\电影\放牛班的春天 唱诗班男孩.rmvb'),這樣運行之後便與matlab無瓜葛。

進行批處理文件后,需要進行定時定點關機,使用system('shutdown.exe -s -t 3600');在一個小時后關機接著又不小心看到sendmail函數,當時就覺得挺好玩,用MATLAB的發smtp邮件,假如做個循環,那豈不是......

MATLAB中的Demo中有詳細介紹。但是不同的MATLAB版本會遇到不同的問題。

首先,設定设定smtp服务器:

setpref('Internet','SMTP_Server','smtp.email.com');%將email改為平時所用的郵箱,如gmail

setpref('Internet','E_mail','邮箱地址');

其次,在7.0以下的版本中sendmail的一些smtp语法跟不上当前的时代,需要修改语句:

在Matlab7.0版sendmail.m的140到150行左右:

sendSMTP(out, in, ['MAIL FROM: ' from], 1);改为:sendSMTP(out, in, ['MAIL FROM: '], 1);

sendSMTP(out, in, ['RCPT TO: ' to{i}], 1); 改为:sendSMTP(out, in, ['RCPT TO: '], 1);

sendSMTP(out, in, ['RCPT TO: ' to], 1);改为:sendSMTP(out, in, ['RCPT TO: '], 1);

在第210~220行附近:

sendSMTP(out, in, '.',1); 改为:sendSMTP(out, in, sprintf('\n.\n'), 1);

在7.0版本以上不需要修改即可用,輸入以下代碼:

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');

然而,現行的smtp服务器都需要身份验证,Matlab7.0版的sendmail.m不支持身份验证,向m文件中添加验证语句。

打开Matlab7.0版的sendmail.m 找到130多行的语句:

“sendSMTP(out, in, 'HELO mailman', 1);”,

在此行之后添加以下三行:

sendSMTP(out, in, 'auth login', 1);

sendSMTP(out, in, '加密的用户名', 1);

sendSMTP(out, in, '加密的密码', 1);

然後輸入:

setpref('Internet','SMTP_Server','smtp.email.com');

setpref('Internet', 'E_mail', '用戶名');

setpref('Internet', 'E_mail', '密碼');

最後,可以向別人發郵件了:

sendmail('收件人地址','邮件标题',{'邮件内容','內容','內容'},'附件地址')

注意,Matlab发送邮件是通过Java接口,速度比较慢,所以不推荐添加太大的附件,以免发送失败。並且MATLAB不支持發送中文信息,會出現亂碼,當然假如十分特別有這種想法的,可以先用函數double將中文轉化為數字矩陣保存,然後用setstr再轉為中文即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值