Как я могу отправить электронное письмо с помощью Genexus evo 3 для Интернета

Может ли кто-нибудь помочь мне решить эту проблему.

Я пытался использовать некоторые типы данных, такие как SMTSession, MailMessage, MailRecipient.

Но это не работает.

Вот код.

    &SMTPSession.Host                  = 'smtp.gmail.com'<br>
    &SMTPSession.Port               = 465<br>
    &SMTPSession.Authentication     = 1<br>
    &SMTPSession.UserName           = '[email protected]'<br>
    &SMTPSession.Password           = 'password'<br>
    &SMTPSession.Secure             = 1 <br>
    &SMTPSession.Sender.Address     = '[email protected]'<br>
    &SMTPSession.Sender.Name        = 'OtherName'<br>
    &MailRecipient.Address          = '[email protected]'<br>
    &MailRecipient.Name             = 'Name'<br>
    &MailMessage.Subject            = 'Subject'<br>
    &MailMessage.Text               = 'text'<br>
    &MailMessage.To.Add(&MailRecipient)<br>


    &SMTPSession.Login()
    if &SMTPSession.ErrCode <> 0
        &SMTPSession.Send(&MailMessage)  
        &SMTPSession.Logout()
   endif

Genexus Evolution 3, обновление 2, среда .Net, Интернет


person RubenC    schedule 03.07.2015    source источник


Ответы (4)


Попробуйте с 587 портом.

Не могли бы вы добавить описание ошибки?

Вы включены 32-битное приложение в IIS пула приложений?

person Gonzalo Gallotti    schedule 04.07.2015
comment
587 — это STARTTLS, запускается как обычный текст, а затем переключается на TLS, поэтому он должен иметь secure=0 (не принудительно запускает TLS перед запуском). - person pmoleri; 06.07.2015

Код вроде в порядке. Единственная разница с тем, что я сделал, это то, что я написал &error = &SMTPSession.Login()

В используемой вами учетной записи Gmail не включена двухэтапная аутентификация?

person Eugenio    schedule 04.07.2015

Ваш код полностью в порядке, вы просто пропустили проверку статуса перед отправкой,

&SMTPSession.Login()
if &SMTPSession.ErrCode = 0 // 0 = OK
    &SMTPSession.Send(&MailMessage)  
    &SMTPSession.Logout()
else
   //Msg(&SMTPSession.ErrDescription) // to see what kind of error
endif

В моем случае я использовал SMTP Gmail, а порт был 587.

person Hussain KMR Behestee    schedule 31.07.2019

Чтобы отправлять почту из программы GX, вы должны активировать в учетной записи Google отправителя опцию, разрешающую менее безопасные приложения.

person Juan Carlos Gatti    schedule 04.02.2021