用于通过java邮件api发送电子邮件的smtp服务器

时间:2012-03-08 02:55:54

标签: javamail

我正在使用java mail api发送电子邮件,我需要知道用于在开发环境中发送测试电子邮件的参数 如果我想使用smtp.gmail.com作为smtp邮件服务器,它有端口465 - 在互联网上找到,我是否需要将身份验证设置为true,用户名和密码也设置或身份验证=假? 如果要求authentication = true,则用户名,密码是我的gmail用户名&密码?

如何在电子邮件中设置cc和bcc地址?

寻找发送电子邮件的最基本方式 感谢

3 个答案:

答案 0 :(得分:1)

如果您想使用Gmail,请参阅JavaMail FAQ

答案 1 :(得分:1)

为了使用gmail作为您的电子邮件服务器,您必须根据JavaMail API标准设置一些属性,如主机,端口,身份验证等。您可以从中获取这些详细信息 https://support.google.com/a/answer/176600?hl=en

示例代码:

public class  SendMail
 {
    public SendMail() 
    {
     // mail properties outgoing server (gmail.com)
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "465");
    props.put("mail.smtp.auth", "true");
    //Create session object
    Authenticator auth = new SMTPAuthenticator();
    Session session = Session.getInstance(props,auth);
    //prepare mail msg
    MimeMessage msg = new MimeMessage(session);
    //set header values    
    msg.setSubject("open to it know it1");
    msg.setFrom(new InternetAddress("yyyyyy@gmail.com"));
//Here in below line, you can specify RecipientType as TO/CC/BCC as per your requirement
    msg.addRecipient(Message.RecipientType.TO, new InternetAddress("xxxxxxx@gmail.com"));
//msg text      
    msg.setText("mail from HCL Technlogies");
    Transport.send(msg);

private class SMTPAuthenticator extends javax.mail.Authenticator {
     public PasswordAuthentication getPasswordAuthentication() {
       return new PasswordAuthentication("nitraja2015@gmail.com","raryan500");
   }

答案 2 :(得分:0)

这不是编程问题。首先,如果您不是动态分配的IP地址(可能被许多邮件服务器阻止垃圾邮件),则您不需要SMTP服务器。您只需使用“toaddress @ domain”并将“域”部分解析为邮件交换处理程序(DNS MX记录查找),即可与该服务器建立直接SMTP连接并将邮件放在那里。您不需要自己编程,因为邮件处理应用程序或中间件应该知道如何自己完成这一切。

如果您没有使用干净的静态IP地址,则可能无法执行此操作,因为许多SMTP服务器将拒绝来自此类地址的连接(常见的垃圾邮件来源!)。

在这种情况下,您的第一个解决方案是通过您的互联网提供商提供的SMTP服务器进行中继。 (它可能是安全的,因此您必须设置身份验证凭据。)

如果这不起作用(例如,它太不安全或者其他垃圾邮件非常友好,并且如此广泛地列入黑名单),那么您可以在其他地方查找SMTP发送解决方案。

没有人能为您解答这个问题,因为最好的SMTP服务器取决于您如何连接到互联网。