Microsoft Outlook 365 y FWH
Microsoft Outlook 365 y FWH
Hola a todos,
He hecho una función para enviar mails de manera desatendida 'a través' de Outlook (precisa que Outlook esté levantado).
Lo he probado en Outlook 2010 y funciona bien, pero el cliente tiene Outlook 365 y yo no.
¿Saben Ustedes si cuando lo pruebe en el entorno del cliente, si debería funcionar por compatibilidad con Outlook 2010?
La única manera que tengo de probarlo es ir a casa del cliente pero quisiera ir ya a sabiendas de que no funcionará o que debería funcionar.
¿Ustedes tienen experiencia con Outlook 365?
Muchas gracias.
He hecho una función para enviar mails de manera desatendida 'a través' de Outlook (precisa que Outlook esté levantado).
Lo he probado en Outlook 2010 y funciona bien, pero el cliente tiene Outlook 365 y yo no.
¿Saben Ustedes si cuando lo pruebe en el entorno del cliente, si debería funcionar por compatibilidad con Outlook 2010?
La única manera que tengo de probarlo es ir a casa del cliente pero quisiera ir ya a sabiendas de que no funcionará o que debería funcionar.
¿Ustedes tienen experiencia con Outlook 365?
Muchas gracias.
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: Microsoft Outlook 365 y FWH
Hola,
Lo primero sería saber si el cliente tiene instalada la versión de escritorio de M.O. 365 porque si ha decido que lo lleva por web, entonces no va a funcionar
Lo primero sería saber si el cliente tiene instalada la versión de escritorio de M.O. 365 porque si ha decido que lo lleva por web, entonces no va a funcionar
Re: Microsoft Outlook 365 y FWH
Bien empiezo.paquitohm wrote:Hola,
Lo primero sería saber si el cliente tiene instalada la versión de escritorio de M.O. 365 porque si ha decido que lo lleva por web, entonces no va a funcionar
Espero que tenga la de escritorio pues CDOSYS no funciona y supuse que sería por tener instalado Outlook (parece ser que CDOSYS y versiones recientes de Outlook no son compatibles).
Poder enviar mails desatendidos en este lugar sin usar libs de terceros me está costando sudor y lágrimas.
Deséame suerte.
Muchas gracias,
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: Microsoft Outlook 365 y FWH
Pues como comentamos, es facil y posible de enviar usando alguna herramienta de terceros, powershell, php-mailer o similar.
Yo tuve que hacer algo porque el cliente tenia Microsoft 365 en la nube y queria emails desatendidos. Lo hice con powershell y hasta el dia de hoy que el log de seguimiento no ha fallado ni una sola vez en el seguimiento.
A los clientes se les hinchan las gonadas porque gmail hace con los emails lo que quiere porque cuando envias más de NN te los marca como spam o directamente te bloquea la cuenta si envias muchos y muy parecidos emails. Asi que deciden irse alli donde tienen mas control de la cuenta, como M.O. 365. Realmente no sé si las cuentas de pago de gmail pueden ayudar tambien a sortear estos problemas, pero la gente que conozco usa M.O. 365 supongo porque asi lo tienen todo: escritorio (el que lo use y si quiere usarlo) y web ademas de Office, por supuesto
Facilmente con chatgpt te montas un ejemplo sencillo para enviar desatendido en las herramientas antes mencionadas: Le pasas como parametro de la llamada un json con los datos del email y en el mismo json escribes la respuesta: enviado, si o no y sino el error de envio. En mi caso lo hice con un archivo .ini
Espero que lo tenga en desktop y sino tampoco es mucho
Yo tuve que hacer algo porque el cliente tenia Microsoft 365 en la nube y queria emails desatendidos. Lo hice con powershell y hasta el dia de hoy que el log de seguimiento no ha fallado ni una sola vez en el seguimiento.
A los clientes se les hinchan las gonadas porque gmail hace con los emails lo que quiere porque cuando envias más de NN te los marca como spam o directamente te bloquea la cuenta si envias muchos y muy parecidos emails. Asi que deciden irse alli donde tienen mas control de la cuenta, como M.O. 365. Realmente no sé si las cuentas de pago de gmail pueden ayudar tambien a sortear estos problemas, pero la gente que conozco usa M.O. 365 supongo porque asi lo tienen todo: escritorio (el que lo use y si quiere usarlo) y web ademas de Office, por supuesto
Facilmente con chatgpt te montas un ejemplo sencillo para enviar desatendido en las herramientas antes mencionadas: Le pasas como parametro de la llamada un json con los datos del email y en el mismo json escribes la respuesta: enviado, si o no y sino el error de envio. En mi caso lo hice con un archivo .ini
Espero que lo tenga en desktop y sino tampoco es mucho
Re: Microsoft Outlook 365 y FWH
Muchas gracias Paquitohm, lo tendré en cuenta y si tengo problemas quizás me decante por Powershell, que si no me equivoco lo trae Windows.paquitohm wrote:Pues como comentamos, es facil y posible de enviar usando alguna herramienta de terceros, powershell, php-mailer o similar.
Yo tuve que hacer algo porque el cliente tenia Microsoft 365 en la nube y queria emails desatendidos. Lo hice con powershell y hasta el dia de hoy que el log de seguimiento no ha fallado ni una sola vez en el seguimiento.
A los clientes se les hinchan las gonadas porque gmail hace con los emails lo que quiere porque cuando envias más de NN te los marca como spam o directamente te bloquea la cuenta si envias muchos y muy parecidos emails. Asi que deciden irse alli donde tienen mas control de la cuenta, como M.O. 365. Realmente no sé si las cuentas de pago de gmail pueden ayudar tambien a sortear estos problemas, pero la gente que conozco usa M.O. 365 supongo porque asi lo tienen todo: escritorio (el que lo use y si quiere usarlo) y web ademas de Office, por supuesto
Facilmente con chatgpt te montas un ejemplo sencillo para enviar desatendido en las herramientas antes mencionadas: Le pasas como parametro de la llamada un json con los datos del email y en el mismo json escribes la respuesta: enviado, si o no y sino el error de envio. En mi caso lo hice con un archivo .ini
Espero que lo tenga en desktop y sino tampoco es mucho
En ese punto y si me permites abusar, te pediré ayuda.
Es cierto, yo también estoy hasta arriba de gmail, al final al cliente le he contratado un dominio sólo para mail y para estos envíos, y si le responden en ese mail lo direcciono a su cuenta gmail habitual y el atiende desde ahí.
Si algún día se cansa o se harta de gmail ya tendrá su dominio funcionando y que lo amplíe lo que le haga falta.
Muchas gracias,
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: Microsoft Outlook 365 y FWH
Nada hombre, lo que haga falta
Estaré encantado de compartir contigo
Estaré encantado de compartir contigo
Re: Microsoft Outlook 365 y FWH
Dear friends,
I also had some issues with the mail-sending, but sending with the microsoft graph api and office365 is working very fine for me.
This is my code...it would be a great honor if some of it could be useful to you.
Kind regards
Ruth
I also had some issues with the mail-sending, but sending with the microsoft graph api and office365 is working very fine for me.
This is my code...it would be a great honor if some of it could be useful to you.
Kind regards
Ruth
Code: Select all | Expand
#include "c:\harbour\contrib\hbcurl\hbcurl.ch"
#define HB_CURLOPT_POST 47
#define HB_CURLOPT_URL 2
#define HB_CURLOPT_DL_BUFF_SETUP 1008
#define HB_CURLOPT_POSTFIELDS 15
#define HB_CURLOPT_WRITEFUNCTION 11
FUNCTION Main()
LOCAL cToken, cResult
cToken := GetAccessToken()
IF !EMPTY(cToken)
cResult := SendEmail(cToken)
?"Email Send Result: ", cResult
ELSE
? "Failed to retrieve access token."
ENDIF
FUNCTION GetAccessToken()
LOCAL hCurl := CURL_easy_init()
LOCAL cPayload := ""
LOCAL cToken := ""
LOCAL cTest := ""
LOCAL nStartPos, nEndPos
LOCAL aHeaders := {"Content-Type: application/x-www-form-urlencoded"}
LOCAL cTenantID := hb_GetEnv("TENANT_ID")
LOCAL cClientId := hb_GetEnv("365client_id")
LOCAL cClientSecret := hb_GetEnv("365client_secret")
IF hCurl != NIL
CURL_easy_setopt(hCurl, HB_CURLOPT_URL, "https://login.microsoftonline.com/"+cTenantID+"/oauth2/v2.0/token")
CURL_easy_setopt(hCurl, HB_CURLOPT_HTTPHEADER, aHeaders)
CURL_easy_setopt(hCurl, HB_CURLOPT_POSTFIELDS, "grant_type=client_credentials&client_id="+cClientId+"&client_secret="+cClientSecret+"&scope=https://graph.microsoft.com/.default")
CURL_easy_setopt(hCurl, HB_CURLOPT_POST, .T.)
curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
CURL_easy_setopt(hCurl, HB_CURLOPT_WRITEFUNCTION, @cPayload) // Buffer the response
CURL_easy_perform(hCurl)
cPayload := curl_easy_dl_buff_get(hCurl) // Get the response from the buffer
nStartPos := AT('"access_token":"',cPayload)+LEN('"access_token":"')
nEndPos := hb_AT('"', cPayload, nStartPos)
cToken := SUBSTR(cPayload, nStartPos, nEndPos - nStartPos)
CURL_easy_cleanup(hCurl)
ELSE
? "Failed to initialize cURL session."
ENDIF
RETURN cToken
FUNCTION SendEmail(cToken)
LOCAL hCurl := CURL_easy_init()
LOCAL cEmailJson
LOCAL cResponse := ""
LOCAL aHeaders := {}
LOCAL cImgBase64 := ""
cImgBase64 := hb_base64Encode(hb_MemoRead("c:\www\htdocs\submarine_yellow\img\latest_news2.jpg"))
? "cImgBase64", cImgBase64
cEmailJson := '{"message": {"subject": "Test base64", ';
+ '"body": {"contentType": "html", ';
+ '"content": "<h1>test</h1><p>The new cafeteria is open...</p>';
+ '<img src=\"data:image/jpeg;base64,' + cImgBase64 + '\" > ';
+ '"}, ';
+ '"toRecipients": [{"emailAddress": {"address": "testrecip@****.info"}}]}, ';
+ '"saveToSentItems": "true"}'
IF hCurl != NIL
AADD(aHeaders, "Authorization: Bearer " + cToken)
AADD(aHeaders, "Content-Type: application/json")
CURL_easy_setopt(hCurl, HB_CURLOPT_URL, "https://graph.microsoft.com/v1.0/users/test@*****.at/sendMail")
CURL_easy_setopt(hCurl, HB_CURLOPT_HTTPHEADER, aHeaders)
CURL_easy_setopt(hCurl, HB_CURLOPT_POSTFIELDS, cEmailJson)
CURL_easy_setopt(hCurl, HB_CURLOPT_POST, .T.)
CURL_easy_setopt(hCurl, HB_CURLOPT_WRITEFUNCTION, @cResponse) // Buffer the response
CURL_easy_perform(hCurl)
cResponse := curl_easy_dl_buff_get(hCurl) // Get the response from the buffer
CURL_easy_cleanup(hCurl)
? "response", cResponse
ELSE
cResponse := "Failed to initialize cURL session."
ENDIF
RETURN cResponse
- Antonio Linares
- Site Admin
- Posts: 42270
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Microsoft Outlook 365 y FWH
Dear Ruth,
many thanks!
many thanks!
- wilsongamboa
- Posts: 600
- Joined: Wed Oct 19, 2005 6:41 pm
- Location: Quito - Ecuador
Re: Microsoft Outlook 365 y FWH
Good Afternoon
Nice piece of code
excuseme my ignorance whats meaning
https://graph.microsoft.com/v1.0/users/ ... t/sendMail
thanks in advance
Wilson
Nice piece of code
excuseme my ignorance whats meaning
https://graph.microsoft.com/v1.0/users/ ... t/sendMail
thanks in advance
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Wilson.josenet@gmail.com
Re: Microsoft Outlook 365 y FWH
Dear Wilson,
I used the information from here...
https://learn.microsoft.com/en-us/graph ... &tabs=http
As far as I could understand, there are two options for http requests when sending emails via Microsoft Graph API:
POST /me/sendMail: This requires the user to log in manually.
POST /users/{id | userPrincipalName}/sendMail: This is the autonomous option where no manual input of user and password is required. In my case, I used my Microsoft Office 365 email address for {id | userPrincipalName}.
For the curl I had to put it in here
Thank you very much for your kind attention. I am very happy about it.
Kind regards
Ruth
I used the information from here...
https://learn.microsoft.com/en-us/graph ... &tabs=http
As far as I could understand, there are two options for http requests when sending emails via Microsoft Graph API:
POST /me/sendMail: This requires the user to log in manually.
POST /users/{id | userPrincipalName}/sendMail: This is the autonomous option where no manual input of user and password is required. In my case, I used my Microsoft Office 365 email address for {id | userPrincipalName}.
For the curl I had to put it in here
Code: Select all | Expand
CURL_easy_setopt(hCurl, HB_CURLOPT_URL, "https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/sendMail")
Kind regards
Ruth
Re: Microsoft Outlook 365 y FWH
Hola a todos,
Paquitohm, he tenido suerte, el cliente tiene instalado Outlook 365; probé mi solución (a fondo aún no) y pude enviar mail.
Ruth muchas gracias por el aporte, lo tendré presente.
De momento tengo resuelto el problema.
Muchas gracias,
Paquitohm, he tenido suerte, el cliente tiene instalado Outlook 365; probé mi solución (a fondo aún no) y pude enviar mail.
Ruth muchas gracias por el aporte, lo tendré presente.
De momento tengo resuelto el problema.
Muchas gracias,
Un Saludo
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Carlos G.
FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
Re: Microsoft Outlook 365 y FWH
Genial Carlos !