ENVIO DE MAIL PELO CLIENTE INSTALADO

USUARIO.EXCLUIDOS 19/04/2004 07:45:06
#21265
Tenho a seguinte função para enviar mails pelo cliente instalado:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_SHOW = 5

Private Sub cmdEnviar_Click()
Set rstMails = New ADODB.Recordset
strSql = "SELECT * FROM tMails"
rstMails.CursorLocation = adUseClient
rstMails.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
Do While Not rstMails.EOF
nome = rstMails("nome")
Mail = rstMails("email")
CC = txtCC
BCC = txtBCC
Assunto = txtAss
Mensagem = Trim$(txtMensagem)

ShellExecute hwnd, _
"open", _
"mailto:" & Mail & _
"?subject=" & Assunto & _
"&body=" & Replace(Mensagem, vbCrLf, "%0D%0A"), _
vbNullString, vbNullString, _
SW_SHOW
rstMails.MoveNext
Loop
Set rstMails = Nothing
End Sub

Só que de facto, não envia o mail. Ele é criado mas, para seguirtenho que clickar no enviar.

Será que alguém me pode indicar o passo que falta para que o mail seja automáticamente enviado?

Se sim, fico antecipadamente grato.



USUARIO.EXCLUIDOS 19/04/2004 10:49:33
#21293
Resposta escolhida
veja neste link, ele pode te dar uma luz..

http://www.vbmania.com.br/vbmdetail.php?varID=131

blz...
USUARIO.EXCLUIDOS 19/04/2004 11:16:53
#21302
Tente isso:

1º Coloque um componente MAPISESSION e um MAPIMESSAGE no seu form, depois coloque esse código:



Private Sub cmdEnviar_Click()
Set rstMails = New ADODB.Recordset
strSql = "SELECT * FROM tMails"
rstMails.CursorLocation = adUseClient
rstMails.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText
MAPISession1.SignOn
Do While Not rstMails.EOF
MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.Compose
MAPIMessages1.RecipAddress = rstMails("email")
MAPIMessages1.MsgSubject = txtAss
MAPIMessages1.MsgNoteText = Trim$(txtMensagem)
MAPIMessages1.MsgOrigDisplayName = rstMails("nome")
MAPIMessages1.Save
rstMails.MoveNext
Loop
MAPIMessages1.Send
MAPISession1.SignOff
Set rstMails = Nothing
End Sub



não testei mas deve funcionar...
Tópico encerrado , respostas não são mais permitidas