4 votes

mailgun à l'adresse e-mail remplacée par l'adresse e-mail cc

J'ai un problème avec mailgun lorsque j'envoie un email avec le paramètre cc. Mais lorsque j'exécute la méthode, j'ai obtenu un en-tête erroné de l'email cc.

Voici mon code

var client = new RestClient
{
    BaseUrl = new Uri("https://api.mailgun.net/v3"),
    Authenticator = new HttpBasicAuthenticator("api", "secret-key")
};

var request = new RestRequest();
request.AddParameter("to", "email.to@gmail.com");
request.AddParameter("cc", "email.cc@gmail.com");
client.Execute(request)

Alors, quelqu'un peut-il m'aider à résoudre ce problème ?

Il s'agit d'informations provenant d'un courriel adressé à

enter image description here

Voici ce que je reçois de cc Email

enter image description here

5voto

CodeFuller Points 20614

Hm, je ne peux pas reproduire votre problème. Je reçois le même message dans les boîtes aux lettres to et cc avec des adresses correctes. Voici un écran de la boîte aux lettres cc :

enter image description here

Afin de résoudre le problème, veuillez procéder comme suit :

  1. Mettez à jour votre question avec le code exact que vous utilisez pour appeler l'API netgun. Les petites choses comptent ici et nous devons comprendre ce qui fait la différence entre vos appels et les miens.

  2. Pourriez-vous également mettre à jour votre question avec le message brut reçu dans la boîte aux lettres cc. Dans Gmail, vous pouvez le faire en cliquant sur la flèche vers le bas près du bouton de réponse et en sélectionnant "Afficher l'original" :

enter image description here

Il y aura un tas d'en-têtes différents dans le message, y compris to et cc :

enter image description here

Veuillez partager avec nous l'ensemble du paquet de courrier que vous recevez.

  1. Si possible, veuillez vérifier le problème avec l'adresse e-mail qui n'est pas sur gmail. Cela fonctionne bien pour moi sur gmail mais peut-être que dans votre cas, c'est la cause première de la modification du message.

2voto

A STEFANI Points 261

Veuillez ajouter un request.Method = Method.POST; dans votre code, car selon documentation officielle de l'api C# mailgun .

Pourriez-vous essayer ce code (avec la même commande) :

    RestClient client = new RestClient ();
    client.BaseUrl = new Uri ("https://api.mailgun.net/v3");
    client.Authenticator =
        new HttpBasicAuthenticator ("api",
                                    "YOUR_API_KEY");
    RestRequest request = new RestRequest ();
    request.AddParameter ("domain", "YOUR_DOMAIN_NAME", ParameterType.UrlSegment);
    request.Resource = "{domain}/messages";
    request.AddParameter ("from", "Email From <email.from@gmail.com>");
    request.AddParameter ("to", "email.to@gmail.com");
    request.AddParameter ("cc", "email.cc@gmail.com");
    request.AddParameter ("subject", "Email Subject");
    request.AddParameter ("text", "Testing some Mailgun awesomness!");
    request.AddParameter ("o:tracking", false);
    request.Method = Method.POST;
    return client.Execute (request);

Salutations

0voto

Kezabub Points 70

Bonjour, je n'arrive pas à reproduire votre problème, cependant, à chaque fois que j'utilise mailgun, j'utilise le code suivant et cela fonctionne très bien pour moi. Si vous voulez l'essayer.

public static IRestResponse SendSimpleMessage(string email)
    {
        var order = new CustomerOrder();
        RestClient client = new RestClient();
        client.BaseUrl = new Uri("https://api.mailgun.net/v3");
        client.Authenticator =
                new HttpBasicAuthenticator("api",
                                           "key-MINE");
        RestRequest request = new RestRequest();
        request.AddParameter("domain",
                             "DOMAINHERE.mailgun.org", ParameterType.UrlSegment);
        request.Resource = "{domain}/messages";
        request.AddParameter("from", "Shop Staff <postmaster@EMAILTHING>");
        request.AddParameter("to", email);
    request.AddParameter("cc", "Shop Staff <insert email here>");
        request.AddParameter("subject", "Your Order has been placed");
        request.AddParameter("text", "Thank you for placing an order with our shop, we have just begun processing your order. You will recieve a follow up email when your order is ready for collection");
        request.Method = Method.POST;
        return client.Execute(request);
    }

et ensuite l'appeler simplement avec

ResponseModel.SendSimpleMessage(email);

EDIT : le seul problème que je peux voir dans votre code est qu'il lui manque

request.Method = Method.POST;

Les méthodes POST sont définies comme suit : "La méthode POST est utilisée pour soumettre une entité à la ressource spécifiée, provoquant souvent un changement d'état ou des effets secondaires sur le serveur".

J'espère que cela vous aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X