react native android设置邮箱,进行邮件发送

react native android设置邮箱,进行邮件发送

  1. 引入发送邮件的架包。

    在build.gradle 的dependencies 下引入:

    复制代码
     //发送邮件的依赖
     implementation 'com.sun.mail:android-mail:1.6.7'
     implementation 'com.sun.mail:android-activation:1.6.7'
  2. 导入EmailSender类

    复制代码
     import android.widget.Toast;
     
     import java.util.Properties;
     
     import javax.mail.Authenticator;
     import javax.mail.Message;
     import javax.mail.MessageRemovedException;
     import javax.mail.MessagingException;
     import javax.mail.PasswordAuthentication;
     import javax.mail.Session;
     import javax.mail.Transport;
     import javax.mail.internet.InternetAddress;
     import javax.mail.internet.MimeMessage;
     
     public class EmailSender {
         private String username;
         private String password;
         private String host;
         private String port;
     
     
         public EmailSender(String username,String password,String host,String port){
             this.username = username;
             this.password = password;
             this.host = host;
             this.port = port;
     
         }
     
         public void sendEmail(String to, String subject , String text){
     
             Properties properties = new Properties();
             properties.put("mail.smtp.auth",true);
             properties.put("mail.smtp.starttls.enable",true);
             properties.put("mail.smtp.host",host);
             properties.put("mail.smtp.port",port);
     
             Session session = Session.getInstance(properties, new Authenticator() {
                 @Override
                 protected PasswordAuthentication getPasswordAuthentication() {
                     return new PasswordAuthentication(username,password);
                 }
             });
     
             try {
                 Message message = new MimeMessage(session);
                 message.setFrom(new InternetAddress(username));
                 message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
                 message.setSubject(subject);
                 message.setText(text);
     
     
                 Transport.send(message);
     
             } catch (MessagingException e){
                 e.printStackTrace();
             }
     
         }
     
     }
  3. 在NativeModule 中调用。

username:账户名、邮箱

password:密码

host:主机

port:端口

to:发送的邮箱

subject:主题

text:内容

复制代码
	@ReactMethod
	    public void sendEmail(String username,String password,String host,String port,String to,String subject,String text) {
	
	        new Thread(new Runnable() {
	            @Override
	            public void run() {
	                EmailSender emailSender = new EmailSender(username,password,host,port);
	
	                emailSender.sendEmail(to,subject,text);
	            }
	        }).start();
	

}
相关推荐
summerkissyou19879 小时前
Android - 摄像头 - hal - 开发教程,例子,常见问题,分析方法,解决方案
android
summerkissyou19879 小时前
Android 16 架构图
android
神龙天舞200110 小时前
MySQL 备库为什么会延迟好几个小时
android·数据库·mysql
码农coding13 小时前
android12 systemUI 之锁屏
android
圆山猫13 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
爱笑鱼14 小时前
Binder(七):getCallingUid() 读到的是谁?clearCallingIdentity() 又清掉了什么?
android
paopaokaka_luck15 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
zzzll111116 小时前
Spring Boot 入门指南:从零开始构建 Java Web 应用
java·前端·spring boot
2501_9159090619 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
Lvan的前端笔记20 小时前
AndroidX 完全入门指南
android·androidx