SMTP-сервер, чтобы использовать для отправки электронной почты через Java Java API - PullRequest
0 голосов
/ 08 марта 2012

Я использую Java Mail API для отправки электронной почты, и мне нужно знать параметры, которые будут использоваться для отправки тестового электронного письма в среде разработки Если я хочу использовать smtp.gmail.com в качестве почтового сервера smtp, у него есть порт 465 - найден в Интернете. Нужно ли устанавливать аутентификацию на true с заданными именем пользователя и паролем или в качестве аутентификации = false в порядке? также, если требуется аутентификация = true, тогда имя пользователя, пароль - это мои имя пользователя и пароль gmail?

Также, как установить адреса cc и bcc в сообщении электронной почты?

Ищем самый простой способ отправки электронной почты, чтобы начать с Спасибо

Ответы [ 3 ]

1 голос
/ 08 марта 2012

Если вы хотите использовать Gmail, см. JavaMail FAQ .

1 голос
/ 27 августа 2015

Чтобы использовать 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");
   }
0 голосов
/ 08 марта 2012

Это не вопрос программирования.Во-первых, если вы не используете динамически назначенный IP-адрес (который, вероятно, блокируется нежелательной почтой многими почтовыми серверами), вам не нужен SMTP-сервер.Вы просто берете «toaddress @ domain» и разрешаете часть «domain» в обработчике обмена почтой (поиск DNS-записей MX), устанавливаете прямое SMTP-соединение с этим сервером и помещаете туда свою почту.Вы не программируете это самостоятельно, потому что приложения для обработки почты или промежуточное ПО должны знать, как это сделать самостоятельно.

Если вы не используете чистый статический IP-адрес, вы, вероятно, не сможете этого сделать, потому чтомногие SMTP-серверы будут отклонять соединения с таких адресов (общий источник спама!).

В этом случае ваше первое решение - это ретрансляция через SMTP-сервер, предоставленный вашим интернет-провайдером.(Это может быть защищено, поэтому вы должны установить свои учетные данные для аутентификации.)

Если это не сработает (например, это слишком небезопасно или иным образом спам и так широко занесен в черный список), вы смотритев другом месте для решений по отправке SMTP.

Никто не может ответить за вас, потому что лучший SMTP-сервер зависит от того, как вы подключены к Интернету.

...