用Apache Mail发送SMTP邮件

用户注册一般需要邮箱或短信验证, 这里先以qq邮箱作为发送端测试
首先在网页中打开qq邮箱-邮箱设置-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务选项中开启POP3/SMTP服务,
然后手机发送短信收到POP3/SMTP服务授权码 如:awdfsdgnxffzdbaa

这里需要用到Apache-SimpleEmail 这个包,比javamail更简面些

测试类  
public class MailUtil {  

    private final static String USERNAME = "34********@qq.com";//自己注册的发件人邮箱  
    private final static String PASSWORD = "awdfsdgnxffzdbaa"; // POP3/SMTP服务授权码  
    private final static String ADDRESS = "smtp.qq.com";       //qq邮箱固定名称  
    private final static int PORT = 587; //邮箱端口为465/587,本人的465接口连接不上  


    /** 
     * 发送邮件给指定人,需要主题和内容 
     * @param user 
     * @param title 
     * @param content 
     */  
    public static void sendMail(String user, String title, String content) {  
        SimpleEmail email = new SimpleEmail();  
        email.setCharset("UTF8");  
        email.setHostName(ADDRESS);  
        email.setSmtpPort(PORT);  
        email.setAuthentication(USERNAME, PASSWORD);  
        try {  
            email.setFrom(USERNAME);  
            email.addTo(user);  
            email.setSubject(title);  
            email.setMsg(content);  
            email.send();  
        } catch (EmailException e) {  
            e.printStackTrace();  
        }  
    }  

    /** 
     * 发送验证邮件给用户 
     * @param user 
     * @param code 
     */  
    public static void sendValidateMail(String user, String code) {  

        String title = "注册验证码";  
        String content = "感谢您注册,您的验证码为 \n" + code + "\n,请注意保存,此验证码有效期为 10分钟 。";  

        sendMail(user, title, content);  
    }  


    public static void main(String[] args) {  
        MailUtil.sendValidateMail("4324993234@qq.com", "4461");//收件人和消息  
    }  
}  
  • 后来发现qq邮箱并不怎么好用,发送出去的邮件经常被当做垃圾邮件,只能买个企业邮箱试试
    这里以阿里云企业邮箱为例,把你买的域名和阿里云邮箱花1元绑定就可以用了
    阿里云邮箱的配置 这是邮箱的配置介绍

按照上面配置新建员工账号和并设置密码,默认是开启smtp的,如新建一个员工账号validate@forfun.top 密码:forfun_validateUSERNAME 你新建的员工账号比如:validate@forfun.top
PASSWORD 这里不需要授权码,邮箱本身就是你自己买的,使用配置的员工密码如:forfun_validate
ADDRESS 固定为smtp.mxhichina.com
PORT 端口号固定为25

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache Velocity是一个非常流行的模板引擎,它可以用来渲染HTML、XML、JSON等格式的文件。但是,Apache Velocity并不是一个邮件发送库,它并不能直接发送邮件。如果需要在Velocity中发送邮件,需要借助JavaMail这样的邮件发送库。 以下是使用JavaMail在Velocity中发送邮件的示例代码: ``` #set($to = "recipient@example.com") #set($from = "sender@example.com") #set($subject = "Test Email") #set($body = "This is a test email.") #set($properties = { "mail.smtp.host": "smtp.example.com", "mail.smtp.port": "587", "mail.smtp.auth": "true", "mail.smtp.starttls.enable": "true" }) #set($session = $tools.mail.getSession($properties, $tools.mail.getAuthenticator($from, "password"))) #set($message = $tools.mail.createMessage($session)) $message.setFrom(new javax.mail.internet.InternetAddress($from)) $message.addRecipient(javax.mail.Message.RecipientType.TO, new javax.mail.internet.InternetAddress($to)) $message.setSubject($subject) $message.setText($body) $tools.mail.sendMessage($message) ``` 在上面的代码中,我们首先定义了一些变量,如收件人、发件人、主题和正文等。然后,我们定义了一个$properties变量,它包含了SMTP服务器的信息。接下来,我们使用$tools.mail.getSession方法创建了一个JavaMail的Session对象,并使用$tools.mail.getAuthenticator方法创建了一个认证器对象。然后,我们使用$tools.mail.createMessage方法创建了一个邮件消息对象,并设置了发件人、收件人、主题和正文等信息。最后,我们调用$tools.mail.sendMessage方法发送邮件。 需要注意的是,上面的代码中使用了$tools.mail.getSession、$tools.mail.getAuthenticator和$tools.mail.createMessage等Velocity工具方法,这些方法并不是Velocity本身提供的方法,而是需要自己实现的一些工具方法,以便在Velocity中方便地使用JavaMail发送邮件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值