4D Internet Commands v16

SMTP_Send

Página Inicial

 
4D Internet Commands v16
SMTP_Send

SMTP_Send 


 

SMTP_Send ( smtp_ID {; paramSessao} ) -> Resultado 
Parâmetro Tipo   Descrição
smtp_ID  Inteiro longo in Referencia da mensagem
paramSessao  Inteiro longo in 1 = Use SSL, 0 se omite = Não utilizar SSL
Resultado  Inteiro in Código de erro

O comando SMTP_Send envia a mensagem referenciada por smtp_ID mas não exclui os dados da memória.

smtp_ID é a referencia inteiro longo de um email criado com o comando SMTP_New.

O parâmetro opcional paramSessao permite ativar o protocolo SSL para a conexão:

  • Se passar 0 ou omite este parâmetro, a mensagem será enviada em modo padrão não seguro. Se o servidor oferece uma atualização a SSL/TLS depois da atualização, a báscula se realiza automaticamente (funcionamento SSL/TLS em modo explícito).
  • Se passar 1, o envio da mensagem se realiza em SSL (modo síncrono),
  • Se passar 2, o envio da mensagem se realiza em modo padrão pero se suporte da atualização em SSL/TLS.

A partir da versão 13.2, 4D Internet Commands STARTTLS em modo explícito. Isto significa que a conexão é feita primeiro em modo padrão e depois se "atualiza" em SSL/TLS depois da fase de autenticação. Consulte o exemplo 2 para uma ilustração deste mecanismo.

  • A conexão inicial deve ser feita em uma porta no SSL/TLS que não é a porta por padrão (25). Deve chamar ao comando IT_SetPort antes de SMTP_Send para designar a porta utilizado para a conexão SMTP inicial. Para uma conexão a um servidor MS Exchange, deve utilizar a porta 587.
  • A conexão deve ser autenticada pelo que tem que chamar ao comando SMTP_Auth . Só o modo de autenticação LOGIN é suportado por 4D Internet Commands para se comunicar com um servidor MS Exchange. Pode passar este modo ou deixar o modo por padrão (neste caso se utiliza o modo mais seguro disponível no servidor):
    [# code4D]$error:=SMTP_Auth ($smtp_id"; user.name","password", 2)// OK para o modo LOGIN
    v$error:=SMTP_Auth ($smtp_id;"user.name";"password") // OK para o modo LOGIN definido pelo servidor[#/code4D]

Neste exemplo, é criada uma mensagem e se definem os elementos estáticos. Para cada registro da tabela [Pessoas], a mensagem é personalizada e é enviada.

 $error:=SMTP_New($smtp_id)
 $error:=SMTP_Host($smtp_id;"wkrp.com")
 $error:=SMTP_From($smtp_id;"herb_tarlick@wkrp.com")
 $error:=SMTP_ReplyTo($smtp_id;"bigguy@wkrp.com")
 $error:=SMTP_Subject($smtp_id;"¡Promoções em espaços publicitários!")
 FIRST RECORD([Personas])
 For($i;1;Records in selection([Pessoas]))
    If([Pessoas]Sales2Date>100000)
       $Body:=◊BigDiscText
    Else
       $Body:=◊SmlDiscText
    End if
    $Body:=Replace string($BoilerPlate;"<Salutation>";[Pessoas]Firstname)
    $error:=SMTP_To($smtp_id;[Pessoas]Email;1) `Substituir o cabeçalho "A" por um novo valor
    $error:=SMTP_Body($smtp_id;$Body)
    $error:=SMTP_Send($smtp_id)
    NEXT RECORD([Pessoas])
 End for
 $error:=SMTP_Clear($smtp_id)

Este exemplo envia uma mensagem de prova via um servidor Exchange em STARTTLS:

 $erro:=SMTP_New($smtp_id)
 $erro:=SMTP_Host($smtp_id;"exchange.4d.com")
 $erro:=SMTP_From($smtp_id;"username@4d.com")
 $erro:=SMTP_ReplyTo($smtp_id;"username@4d.com")
 $erro:=SMTP_Subject($smtp_id;"Message test")
 $erro:=SMTP_Auth($smtp_id;"username";"!%@password") //utilizar identificadores válidos
 $Body:="Esta é uma prova de envio de mensagens via Exchange, favor não responder"
 $erro:=IT_SetPort(2;587) //modo STMP padrão, porta 587 para Exchange
 $erro:=SMTP_To($smtp_id;"recipient@gmail.com")
 $erro:=SMTP_Body($smtp_id;$Body)
 $erro:=SMTP_Send($smtp_id;0) //Envio em modo 'atualizável'
 ALERT(String($erro));



Ver também 

SMTP_New

 
PROPRIEDADES 

Produto: 4D Internet Commands
Tema: IC Send Mail
Número 88989

 
HISTÓRIA 

Criado por: 4D Internet Commands 6.5
Modificado: 4D Internet Commands v12.1
Modificado: 4D v13.2

 
ARTICLE USAGE

4D Internet Commands ( 4D Internet Commands v16)