Using sendmail with gmail oauth2 credentials

조회 수: 24 (최근 30일)
Petorr
Petorr 2022년 6월 8일
댓글: Petorr 2022년 6월 8일
I want to send emails programmatically from matlab through gmail, using sendmail. Gmail recently ended support for simple user&password SMTP and they now require oauth2. I almost have oauth2 working, but I think I am stuck on setting up sendmail to properly use "XOAUTH2" credentials. Sendmail returns an error, "Authentication failed."
My question is: assuming I have a valid access token with permissions "scope" set to https://mail.google.com, how do I configure the settings to use sendmail with XOAUTH2?
Any help appreciated, thanks!
  댓글 수: 2
Petorr
Petorr 2022년 6월 8일
I have set up my smtp environment like this:
setpref('Internet','SMTP_Server',email_server);
setpref('Internet','E_mail',email_address);
setpref('Internet','SMTP_Username',email_user);
setpref('Internet','SMTP_Password',access_token);
props = java.lang.System.getProperties;
props.setProperty('mail.smtp.auth','true');
props.setProperty('mail.smtp.socketFactory.port','587');
props.setProperty('mail.smtp.starttls.enable', 'true' );
props.setProperty('mail.smtp.starttls.required','true');
props.setProperty('mail.smtp.ssl.enable','true')
props.setProperty('mail.smtp.user',email_address);
props.setProperty('mail.smtp.host','smtp.gmail.com');
props.setProperty('mail.smtp.port','587');
props.setProperty('mail.smtp.auth.mechanisms',['XOAUTH2']);
Petorr
Petorr 2022년 6월 8일
sendmail error:
Authentication failed.
% more detailed:
% 'Java exception occurred:
% javax.mail.AuthenticationFailedException
% at javax.mail.Service.connect(Service.java:306)
% at javax.mail.Service.connect(Service.java:156)
% at javax.mail.Service.connect(Service.java:105)
% at javax.mail.Transport.send0(Transport.java:168)
% at javax.mail.Transport.send(Transport.java:98)
% '

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2022년 6월 8일
  댓글 수: 1
Petorr
Petorr 2022년 6월 8일
Yes, I saw that answer and it seems to work so far. I just don't know how long google will support this almost-the-same workaround, if the password expires occasionally or not, etc etc so I was hoping to get the whole oauth2 thing working. The method in the above answer does let me send emails as before, with gmail credentials and sendmail. Thanks Jan!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Web Services에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by