Отправить почту из GCLOUD на другой адрес электронной почты (Gmail, Yahoo). Как ссылка для подтверждения электронной почты, подтверждение подписки
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendEmail
{
public static void main(String [] args){
String to = "gourab.p17@gmail.com";
String from = "gp@sharenodes.com";
String host = "localhost";//or IP address
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("Ping");
message.setText("Hello, this is example of sending email ");
// Send message
Transport.send(message);
System.out.println("message sent successfully....");
}catch (MessagingException mex) {mex.printStackTrace();}
}
}
Я не хочу использовать sendgrid/google-email-api/mailgun. Я сопоставил DNS-A(хост) @ 23.236.49.96 600 секунд sharenodes.com, но не смог отправить почту. Пробовал properties.put("mail.smtp.port", "2525"); Но ни одна почта не получила ни ошибки. Для порта 25, 465, 587 выдает ошибку, так как Google заблокировал эти порты.
1 ответ
Google Compute Engine не разрешает исходящие соединения через порты 25, 465 и 587. При этом вы можете настроить свой собственный почтовый сервер на любом из портов, не заблокированных Compute Engine, или использовать партнерские сервисы, такие как SendGrid, Mailgun, или с помощью Google Apps. Информация документирована по этой ссылке