• Linux下Apache James 邮件安装与发送程序


    -

    1. 下载:apache-james-3.0-beta3-app.tar.gz,
    URL是http://james.apache.org/download.cgi
    2. 解压 tar -zxf
    apache-james-3.0-beta3-app.tar.gz
    3. 启动
        cd
    apache-james-3.0-beta3-app/bin
        ./run.sh
        ./james start
    4.
    添加域名
        cd apache-james-3.0-beta3-app/bin
        ./james-cli.sh  --host
    127.0.0.1 adddomain localhost
    5. 添加用户
        cd
    apache-james-3.0-beta3-app/bin
        ./james-cli.sh  --host 127.0.0.1 adduser
    test@asbinms.com test


    6. 通过邮件服务器发送邮件(Java实现)


    EmailAuthenticator.java

    package mail;
    
    import javax.mail.Authenticator;   
    import javax.mail.PasswordAuthentication;   
    
    public class EmailAuthenticator extends Authenticator {   
        private String m_username = null;   
      
        private String m_userpass = null;   
      
        void setUsername(String username) {   
            m_username = username;   
        }   
      
        void setUserpass(String userpass) {   
            m_userpass = userpass;   
        }   
      
        public EmailAuthenticator(String username, String userpass) {   
            super();   
            setUsername(username);   
            setUserpass(userpass);   
        }   
      
        public PasswordAuthentication getPasswordAuthentication() {   
            return new PasswordAuthentication(m_username, m_userpass);   
        }   
    }  


    SendMail.java

    package mail;
    
    import java.util.Date;
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    import javax.mail.internet.MimeUtility;
    
    public class SendMail {
    
    	private String mailServer, username, password;
    	private Session mailSession;
    	private Properties prop;
    	private Message message;
    
    	/**
    	 * // 设置邮件服务器相关
    	 * @param mailServer: 
    	 * @param username: 
    	 * @param password: 
    	 */
    	public SendMail(String mailServer, String username, String password) {
    		this.mailServer = mailServer;
    		this.username = username;
    		this.password = password;
    	}
    
    	/**
    	 * 
    	 * @param to : 
    	 * @param mailSubject:
    	 * @param mailContent
    	 */
    	public void send(String to, String mailSubject, String mailContent) {
    		EmailAuthenticator mailauth = new EmailAuthenticator(username, password);
    		// 设置邮件服务器
    		prop = System.getProperties();
    		prop.put("mail.smtp.auth", "true");
    		prop.put("mail.smtp.host", mailServer);
    		// 产生新的Session服务
    		mailSession = mailSession.getDefaultInstance(prop, (Authenticator) mailauth);
    		message = new MimeMessage(mailSession);
    
    		try {
    			message.setFrom(new InternetAddress(username)); // 设置发件人
    			message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));// 设置收件人
    			message.setSubject(mailSubject);// 设置主题
    //			message.setContent(mailContent, "text/plain");// 设置内容,中文乱码,用下面的方法
    		
    			// 设置内容
    			Multipart multipart = new MimeMultipart();
    			MimeBodyPart mimeBodyPart = new MimeBodyPart(); 			
    			mimeBodyPart.setText(mailContent); 			
    //			mimeBodyPart.setFileName(MimeUtility.encodeText(mailContent, "GBK", "B")); //对邮件头采用base64方式编码   
    			multipart.addBodyPart(mimeBodyPart);   
    			message.setContent(multipart);
    			
    			// 设置日期
    			message.setSentDate(new Date());
    			Transport tran = mailSession.getTransport("smtp");
    			tran.connect(mailServer, username, password);
    			tran.send(message, message.getAllRecipients());
    			tran.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static void main(String[] args) {
    		SendMail mail;
    		mail = new SendMail("localhost", "test@localhost", "test");
    		System.out.println("sending......");
    		mail.send("test@localhost", "-=> < tttt", "xx-=> <  xxxxx");
    		System.out.println("finished!");
    	}
    }
  • 相关阅读:
    由"跨域"引出的一个终极思想(jsonp)
    SQLAlchemy 使用教程
    rbac-基于角色的权限控制系统(8种常用场景再现)
    Django中间件 (middleware)
    tcp粘包问题原因及解决办法
    细说【json&pickle】dumps,loads,dump,load的区别
    python面向对象--快速入门
    python三大器(装饰器/生成器/迭代器)
    django神器 <自定义过滤器filter 和 标签tag>
    python 基础数据类型汇总
  • 原文地址:https://www.cnblogs.com/liuyou/p/2316947.html
Copyright © 2020-2023  润新知