Android Java 发送邮件

以下示例使用 QQ 邮箱发送的,邮箱需开启SMTP服务,如何开启请自行百度。

/**
 *     implementation group: 'org.apache.commons', name: 'commons-email', version: '1.4'
 */
public class SendEmail
{
    public static void main(String [] args)
    {
        Mail mail = new Mail();
        mail.setHost("smtp.qq.com"); 			//设置邮件服务器,如果不用QQ邮箱的,自己找找看相关的
        mail.setPortNumber("465");   			//设置邮件服务器端口号,默认25
        mail.setSender("111@qq.com");   			//发送人
        mail.setName("通知");   					//发送人昵称
        mail.setReceiver("222@qq.com"); 			//接收人
        mail.setUsername("111@qq.com"); 			//登录账号,一般都是和邮箱名一样
        mail.setPassword("*************");  //QQ邮箱登录第三方客户端时,密码框请输入“授权码”进行验证。其他的密码具体查看邮件服务器的说明
        mail.setSubject("标题");
        mail.setMessage("<h1>内容</h1>");
        if (new MailUtil().send(mail)) {
            System.out.println("发送成功");
        } else {
            System.out.println("发送失败");
        }
    }
    public static class Mail implements Serializable {
        /**
         * 序列号
         */
        private static final long serialVersionUID = -3562218214168975242L;
        /**
         * 邮件编码s
         */
        public static final String ENCODEING = "UTF-8";
        /**
         * 服务器地址
         */
        private String host;
        /**
         * 服务器端口号
         */
        private String portNumber;
        /**
         * 发件人的邮箱
         */
        private String sender;
        /**
         * 收件人的邮箱
         */
        private String receiver;
        /**
         * 发件人昵称
         */
        private String name;
        /**
         * 账号
         */
        private String username;
        /**
         * 密码
         */
        private String password;
        /**
         * 主题
         */
        private String subject;
        /**
         * 信息(支持HTML)
         */
        private String message;

        public String getHost() {
            return host;
        }

        public void setHost(String host) {
            this.host = host;
        }

        public String getSender() {
            return sender;
        }

        public String getPortNumber() {
            return portNumber;
        }

        public void setPortNumber(String portNumber) {
            this.portNumber = portNumber;
        }

        public void setSender(String sender) {
            this.sender = sender;
        }

        public String getReceiver() {
            return receiver;
        }

        public void setReceiver(String receiver) {
            this.receiver = receiver;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        public String getSubject() {
            return subject;
        }

        public void setSubject(String subject) {
            this.subject = subject;
        }

        public String getMessage() {
            return message;
        }

        public void setMessage(String message) {
            this.message = message;
        }

    }


    public static class MailUtil {

        public boolean send(Mail mail) {
            //发送email对象
            HtmlEmail email = new HtmlEmail();
            try {
                //这里是SMTP发送服务器的名字
                email.setHostName(mail.getHost());
                //端口号不为空时,用户自定义的端口号为SMTP发送服务器端口号
                if (!"".equals(mail.getPortNumber())) {
                    email.setSSLOnConnect(true);
                    email.setSslSmtpPort(mail.getPortNumber());
                }
                //字符编码集的设置
                email.setCharset(Mail.ENCODEING);
                //收件人的邮箱
                email.addTo(mail.getReceiver());
                //发送人的邮箱
                email.setFrom(mail.getSender(), mail.getName());
                // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码
                email.setAuthentication(mail.getUsername(), mail.getPassword());
                // 要发送的邮件主题
                email.setSubject(mail.getSubject());
                // 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
                email.setMsg(mail.getMessage());
                // 发送
                email.send();
                return true;
            } catch (EmailException e) {
                e.printStackTrace();
                return false;
            }
        }
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安卓Java平台上,我们可以使用JavaMail库来发送邮件。首先,我们需要在Android项目的build.gradle文件中添加以下依赖: ``` dependencies { implementation 'com.sun.mail:android-mail:1.6.2' implementation 'com.sun.mail:android-activation:1.6.2' } ``` 接下来,我们可以创建一个发送邮件的方法。首先,我们需要创建一个Properties对象来设置邮件服务器的相关信息,并启用SSL加密。例如: ```java private static void sendEmail(String to, String subject, String body) { // 设置邮件服务器信息 Properties properties = new Properties(); properties.put("mail.smtp.host", "smtp.example.com"); properties.put("mail.smtp.port", "465"); properties.put("mail.smtp.ssl.enable", "true"); // 创建会话 Session session = Session.getInstance(properties); try { // 创建邮件对象 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("sender@example.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject(subject); message.setText(body); // 发送邮件 Transport.send(message); } catch (MessagingException e) { e.printStackTrace(); } } ``` 在此示例中,我们将邮件发送到`to`指定的收件人,`subject`指定邮件主题,`body`指定邮件内容。我们还设置了邮件服务器的主机名`smtp.example.com`和端口号`465`,并启用了SSL加密。 需要注意的是,为了发送邮件,您需要在发送者地址(`sender@example.com`)和邮件服务器的登录凭据(用户名和密码)之间进行身份验证,具体取决于您使用的邮件服务器。您可以使用`properties.put("mail.smtp.auth", "true")`启用身份验证,并使用`Authenticator`类提供用户名和密码。 请确保您的应用程序在`AndroidManifest.xml`文件中具有适当的权限: ```xml <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> ``` 通过调用`sendEmail`方法,您可以在安卓Java应用程序中发送邮件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值