email发送实战

  1. /***************email发送实战***************************/ 
  2. //用java实现发送
  3. public static void sendMail(String mail_host, String mail_port, final String mail_sender, final String mail_sender_pwd, String mail_from, String To, String CC, String BCC, String subject, String content, boolean isSSL) {
  4.         try {
  5.             // Get a Properties object
  6.             Properties props = System.getProperties();
  7.             props.setProperty("mail.smtp.host", mail_host);   //smtp.gmail.com
  8.             props.put("mail.smtp.auth""true");
  9.             if (isSSL) {
  10.                 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  11.                 props.setProperty("mail.smtp.port", mail_port);
  12.                 props.setProperty("mail.smtp.socketFactory.port", mail_port);
  13.                 props.setProperty("mail.smtp.socketFactory.class""javax.net.ssl.SSLSocketFactory");
  14.                 props.setProperty("mail.smtp.socketFactory.fallback""false");
  15.             }
  16.             Session session = Session.getDefaultInstance(props, new Authenticator() {
  17.                 protected PasswordAuthentication getPasswordAuthentication() {
  18.                     return new PasswordAuthentication(mail_sender, mail_sender_pwd);
  19.                 }
  20.             });
  21.             // -- Create a new message --
  22.             //  Message msg = new MimeMessage(session);
  23.             MimeMessage msg = new MimeMessage(session);
  24.             // -- Set the FROM and TO fields --
  25.             msg.setFrom(new InternetAddress(mail_from));
  26.             //发送到目标邮件
  27.             msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(To));
  28.             //抄送的接收者
  29.             if (StringUtils.isNotEmpty(CC))
  30.                 msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(CC));
  31.             //暗送的接收者
  32.             if (StringUtils.isNotEmpty(BCC))
  33.                 msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(BCC));
  34.             msg.setSubject(subject);
  35.             // MimeMultipart multi = new MimeMultipart();
  36.             Multipart multi = new MimeMultipart();
  37.             //BodyPart textBodyPart = new MimeBodyPart();
  38.             MimeBodyPart bodyPart = new MimeBodyPart();
  39.             // 设定邮件内容的类型为 text/plain 或 text/html
  40.             bodyPart.setContent(content, "text/html;charset=UTF-8");
  41.             //textBodyPart.setText(content);
  42.             multi.addBodyPart(bodyPart);
  43.             msg.setContent(multi);
  44.             msg.saveChanges();
  45.             //  msg.setText(content);
  46.             msg.setSentDate(new Date());
  47.             Transport.send(msg);
  48.         } catch (MessagingException e) {
  49.             log.debug(e.getMessage());
  50.         }
  51.     }
  52. //普通未加密 
  53.  private static void sentMail() {
  54.         String mail_host = "smtp.163.com";
  55.         String mail_sender = "test";
  56.         String mail_sender_pwd = "test";
  57.         String mail_from = "test@163.com";  
  58.         String To = "test1@163.com,test2@163.com";
  59.         String CC = "test1@163.com,test2@163.com";
  60.         String BCC = "test1@163.com,test2@163.com";
  61.         String subject = "test email";
  62.         String contents = getContent();
  63.         sendMail(mail_host,
  64.                 null,
  65.                 mail_sender,
  66.                 mail_sender_pwd,
  67.                 mail_from,
  68.                 To,
  69.                 CC,
  70.                 BCC,
  71.                 subject,
  72.                 contents,
  73.                 false);
  74.     }
  75. //SSL加密     
  76. private static void sendMailSSL() {
  77.         String mail_host = "smtp.gmail.com";
  78.         String mail_port = "465";
  79.         String mail_sender = "test";
  80.         String mail_sender_pwd = "test";
  81.         String mail_from = "test@gmail.com";
  82.         String To = "test1@163.com,test2@163.com";
  83.         String CC = null;
  84.         String BCC = null;
  85.         String subject = "test email";
  86.         //String contents = "<shortname> has paid - <amount> E TTC";
  87.         String contents = getContent();
  88.         sendMail(mail_host,
  89.                 mail_port,
  90.                 mail_sender,
  91.                 mail_sender_pwd,
  92.                 mail_from,
  93.                 To,
  94.                 CC,
  95.                 BCC,
  96.                 subject,
  97.                 contents,
  98.                 true);
  99.     }   
  100. //利用commons发送
  101.  private static void sendMail(String hostName, String sender, String pwd, String from, String to,String subject, String contents, boolean isSSL) {
  102.         try {
  103.             List list = new ArrayList();
  104.             InternetAddress[] toAry = InternetAddress.parse(to);
  105.             for (int i = 0; i < toAry.length; i++) {
  106.                 list.add(toAry[i]);
  107.             }
  108.              log.debug(list);
  109.             SimpleEmail email = new SimpleEmail();
  110.             email.setHostName(hostName);//邮件服务器 smtp.sina.com
  111.             email.setAuthentication(sender, pwd);//smtp认证的用户名和密码
  112.             if (isSSL) {
  113.                 email.setSmtpPort(465);
  114.                 email.setSSL(true);
  115.                 email.setSslSmtpPort("465");
  116.             }
  117.             //发送到目标邮件
  118.             // email.addTo("beauty2001@163.com", "兔子");//收信者
  119.             email.setTo(list);
  120.             //暗送的接收者
  121.             // email.setBcc(null);
  122.             //抄送的接收者
  123.             //email.setCc(null);
  124.             email.setSentDate(new Date());
  125.             // email.setFrom("beauty2001@163.com", "猫咪");//发信者
  126.             email.setFrom(from);
  127.             email.setSubject(subject);//标题
  128.             email.setCharset("UTF-8");//编码格式
  129.             //email.setMsg("这是一封猫咪的测试邮件");//内容
  130.             email.setContent(contents, "text/html;charset=UTF-8");
  131.             /* MimeMultipart multi = new MimeMultipart();
  132.             BodyPart textBodyPart = new MimeBodyPart();
  133.             textBodyPart.setText(contents);
  134.             multi.addBodyPart(textBodyPart);
  135.             email.setContent(multi);*/
  136.             email.send();//发送
  137.         } catch (Exception e) {
  138.             log.debug(e);
  139.         }
  140.     }
  141.     
  142. sendMail("smtp.163.com""test""test""test@163.com","test1@163.com,test2@163.com""test email", getContent(), false);
  143. sendMail("smtp.gmail.com""test@gmail.com""test""test@gmail.com","test1@163.com,test2@163.com","test email", getContent(), false);
  144. //获取网页内容    
  145. private static String getContent() {
  146.         String contents = null;
  147.         try {
  148.             URL url = new URL("http://www.XXX.com/tech/cvs_card.html");
  149.             InputStream inStream = url.openStream();
  150.             contents = IOUtils.toString(inStream, "utf-8");
  151.             System.out.println("Slashdot: " + contents);
  152.         } catch (IOException ioe) {
  153.             // handle this exception
  154.         }
  155.         return contents;
  156.     }   
  157. 加上commons-email-1.1.jar
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现网页数据更新后发送邮件的功能,可以使用Python的smtplib和email库。下面是一个示例代码: ```python import requests import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart # 获取网页数据 def get_web_data(url): response = requests.get(url) data = response.text return data # 发送邮件 def send_email(sender_email, sender_password, receiver_email, subject, content): # 设置邮件内容 message = MIMEMultipart() message['From'] = sender_email message['To'] = receiver_email message['Subject'] = subject message.attach(MIMEText(content, 'plain')) # 连接SMTP服务器发送邮件 with smtplib.SMTP_SSL('smtp.gmail.com', 465) as server: server.login(sender_email, sender_password) server.sendmail(sender_email, receiver_email, message.as_string()) # 主函数 def main(): # 网页URL url = 'http://example.com/data' # 替换为你要获取数据的网页URL # 获取网页数据 data = get_web_data(url) # 判断数据是否有更新 # 这里只是一个示例,你需要根据具体情况编写判断逻辑 if data != '上次保存的数据': # 发送邮件通知数据更新 sender_email = 'your_email@gmail.com' # 发件人邮箱 sender_password = 'your_password' # 发件人邮箱密码(授权码) receiver_email = 'recipient_email@gmail.com' # 收件人邮箱 subject = '网页数据更新通知' # 邮件主题 content = '网页数据已更新,请查看最新数据。' # 邮件内容 send_email(sender_email, sender_password, receiver_email, subject, content) # 执行主函数 if __name__ == '__main__': main() ``` 在代码中,你需要替换以下内容: - `url`:替换为你要获取数据的网页URL。 - `sender_email`:替换为发件人的邮箱地址。 - `sender_password`:替换为发件人邮箱的密码或授权码。 - `receiver_email`:替换为收件人的邮箱地址。 这个示例代码中使用了Gmail作为发件人的邮箱,如果你使用其他邮箱,请参考相应的SMTP服务器地址和端口号进行修改。另外,代码中的判断数据是否有更新的逻辑只是一个示例,你需要根据具体情况编写适合你的判断逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值