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

}
相关推荐
冠希陈、3 小时前
PHP 判断是否是移动端,更新鸿蒙系统
android·开发语言·php
2601_949593653 小时前
基础入门 React Native 鸿蒙跨平台开发:卡片组件
react native·react.js·harmonyos
qq_177767374 小时前
React Native鸿蒙跨平台剧集管理应用实现,包含主应用组件、剧集列表、分类筛选、搜索排序等功能模块
javascript·react native·react.js·交互·harmonyos
qq_177767374 小时前
React Native鸿蒙跨平台自定义复选框组件,通过样式数组实现选中/未选中状态的样式切换,使用链式调用替代样式数组,实现状态驱动的样式变化
javascript·react native·react.js·架构·ecmascript·harmonyos·媒体
m0_740043734 小时前
【无标题】
java·spring boot·spring·spring cloud·微服务
重整旗鼓~5 小时前
1.外卖项目介绍
spring boot
烬头88215 小时前
React Native鸿蒙跨平台采用了函数式组件的形式,通过 props 接收分类数据,使用 TouchableOpacity实现了点击交互效果
javascript·react native·react.js·ecmascript·交互·harmonyos
qq_177767375 小时前
React Native鸿蒙跨平台通过Animated.Value.interpolate实现滚动距离到动画属性的映射
javascript·react native·react.js·harmonyos
晚霞的不甘5 小时前
Flutter for OpenHarmony从零到一:构建《冰火人》双人合作闯关游戏
android·flutter·游戏·前端框架·全文检索·交互
2601_949833395 小时前
flutter_for_openharmony口腔护理app实战+饮食记录实现
android·javascript·flutter