python,java使用163邮箱发邮件

26 篇文章 0 订阅
import smtplib
from email.mime.text import MIMEText
mail_host = "smtp.163.com"  # 设置服务器
mail_user = "****@163.com"  # 用户名
mail_pass = "****"  # 网易邮箱是密码(QQ邮箱是输入授权码,在qq邮箱设置 里用验证过的手机发送短信获得,不含空格)


sender = '****@163.com'
receivers = ['****@qq.com']  # 接收邮件列表,可设置为你的QQ邮箱或者其他邮箱
content="这不是垃圾邮件!!!!!!!!!!真的不是!!!!!!!!!别删我!!!!!!!!!!"
message = MIMEText(content, 'plain', 'utf-8')
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)


subject ='导入任务完成' #邮件主题
message['Subject'] = subject


try:
    smtpObj = smtplib.SMTP_SSL(mail_host,465)
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string())
    smtpObj.quit()
    print(u"邮件发送成功")
except smtplib.SMTPException as e:
    print(str(e))

以上亲测可用,使用qq邮箱时易被识别为垃圾邮件导致无法发送,而且获取授权码较麻烦,所以采用网易邮箱发送。

邮件可能被识别为垃圾邮件,需要在邮箱中设置白名单即可正常接收

微信开启qq邮箱提醒后收到邮件即可自动提示,但如果安装了qq邮箱客户端则该提示会被屏蔽,需在qq邮箱客户端中设置:新邮件提醒-***@qq.com-取消“仅在客户端提示”


java版

package work;


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;


import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
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;


public class Mail {
public static String shouquan="111111";//授权码
public static String frommail="111111@163.com";//发件人
public static String tomail="2111111@qq.com";//收件人
public static String chaosongmail="111111@outlook.com";//抄送人
public static String subject="";//主题
public static String mailtext="";//正文
public static String fujian="";
public static String smtphost="smtp.163.com";
public static String smtpport="25";

public static void sendTextMail() {   
        Properties props = new Properties();  
        props.put("username",frommail);   
        props.put("password",shouquan);   
        props.put("mail.smtp.auth", "true");
        props.put("mail.transport.protocol", "smtp" );  
        props.put("mail.smtp.host",smtphost);  
        props.put("mail.smtp.port",smtpport);
        // 根据邮件会话属性和密码验证器构造一个发送邮件的session  
        Session sendMailSession = Session.getDefaultInstance(props, new Authenticator() {
        @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(frommail,shouquan);
        }});  
        sendMailSession.setDebug(true); 
        try {  
            Message mailMessage = new MimeMessage(sendMailSession); 
            mailMessage.setHeader("X-Mailer", "Microsoft Outlook Express 6.00.2900.2869");
            mailMessage.setFrom(new InternetAddress(frommail));
            mailMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(tomail));  
//            mailMessage.setRecipient(Message.RecipientType.CC,new InternetAddress(chaosongmail));//抄送,密送为BCC 
            mailMessage.setSubject(subject);
            mailMessage.setSentDate(new Date());  
            
            if(fujian.equals("")){
            mailMessage.setText(mailtext);//无附件时直接使用设置正文
            }else{
           MimeMultipart partList = new MimeMultipart();
           mailMessage.setContent(partList);
           //正文
           MimeBodyPart text = new MimeBodyPart();
           text.setText(mailtext);
           partList.addBodyPart(text);
           //可加多个附件
           MimeBodyPart file1 = new MimeBodyPart();
           file1.setDataHandler(new DataHandler(new FileDataSource(fujian)));
           sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
           file1.setFileName("=?GBK?B?"+ enc.encode(fujian.getBytes()) + "?=");
           partList.addBodyPart(file1);
            }     
            Transport.send(mailMessage); 
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }
    public static String readcsv(String file) throws IOException{
    BufferedReader reader=new BufferedReader(new FileReader(file));
String l,txt="";
while((l=reader.readLine()) !=null){
txt=txt+l;
}
reader.close();
        return txt;
    }
    public static void main(String[] args) throws IOException {
    mailtext=readcsv("D:/baidu/Desktop/project_ftp_loader/log/2017-04-18 14-00-01.log");
//     fujian="D:/baidu/Desktop/y项变化情况.xlsx";
    frommail="111111@163.com";
    shouquan="ftms111111";
    tomail="111111@qq.com";
    subject="又是一个安静的晚上~";
    sendTextMail();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值