我正在使用java mail api发送电子邮件,我需要知道用于在开发环境中发送测试电子邮件的参数
如果我想使用smtp.gmail.com
作为smtp邮件服务器,它有端口465 - 在互联网上找到,我是否需要将身份验证设置为true
,用户名和密码也设置或身份验证=假?
如果要求authentication = true,则用户名,密码是我的gmail用户名&密码?
如何在电子邮件中设置cc和bcc地址?
寻找发送电子邮件的最基本方式 感谢
答案 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服务器取决于您如何连接到互联网。