ActionMailer zeigt keine Leerzeichen im Text-Mailer an

9

Ich habe einen ActionMailer-Controller, der diese Datei senden soll:

%Vor%

Dies ist der (Beispiel-) Inhalt der Datei:

%Vor%

[bearbeitet] Dies ist der Code im Controller:

%Vor%

und das ist der Code in UserMailer & lt; ActionMailer :: Basis

%Vor%

Dies ist die E-Mail, die ich erhalte:

%Vor%

Irgendwelche Hinweise, wie Sie Leerzeichen, Zeilenumbrüche und Zeilenumbrüche einfügen können?

[Bearbeiten] Nach dem Installieren des Gemme letters_opener sehe ich Folgendes in meiner Konsole:

%Vor%

Ich versuche die "Content-Transfer-Encoding" Header zu ändern, aber sie scheinen sich nicht zu ändern. Ich habe auch versucht, einen Standardwert dafür einzustellen. Es sieht so aus, als ob wir mit der 7-Bit-Codierung feststecken.

[Bearbeitet] Eine andere, die uns helfen sollte, das Problem zu finden, ist, dass ich versucht habe, die folgenden Parameter an die Mail-Funktion zu übergeben, um zu sehen, ob der Datei-Renderer problematisch ist:

%Vor%

"Hellothere!" kam auch zusammen gesammelt.

Ich habe dann den folgenden Code ausprobiert, um sicherzustellen, ob die Render- oder Mail-Funktion die Fehler verursacht.

%Vor%

kam auch zusammen gesammelt.

    
Abdo 27.10.2011, 15:10
quelle

3 Antworten

0

Ich brauchte eine Weile, um es zu lösen. Das Problem war nicht mit ActionMailer.

Wenn du dieses Problem hast, vergewissere dich zuerst, dass es nicht dein Code oder deine Edelsteine ​​sind, die dies verursachen. Starten Sie eine neue Rails-Applikation und testen Sie ActionMailer damit. (Danke für @RubyCyanide für diesen Vorschlag)

In meinem Fall war es eine Funktion join , die ich in meinem Initiator String class hatte. Es ist sehr wahrscheinlich, dass Sie oder ein Edelstein, den Sie verwenden, einen Konflikt mit der Join-Funktion von Mail haben.

Hoffe, das hilft!

    
Abdo 10.11.2011, 01:54
quelle
1

Standardmäßig sollte der Mailer Text-E-Mails senden - es ist möglich, dass dies auf der Client-Seite geschieht. Die wirkliche Lösung besteht darin, sowohl Text- als auch HTML-Templates zu haben (oder durch Tricks (oder einfach nur Markdown), die gleiche Vorlage für beide zu verwenden, wenn sie genauso einfach sind.

    
Dave Newton 27.10.2011 15:31
quelle
0

Ich habe eine Klasse eingerichtet, die von ActionMailer::Base erbt und dann Ihre welcome_email -Methode dort erstellt. Dann in deinem Controller FooMailer.welcome_email(@user.email).deliver aufrufen. Wenn Sie dies viel tun, ziehen Sie in Betracht, es in einen resque oder verzögerten Job zu verschieben.

Haben Sie ein Problem mit dem Abstand, haben Sie versucht, ein welcome_email.html.erb zu erstellen und senden Sie das aus? Sie können in Ihrer welcome_email -Methode angeben, wie Sie html (mit oder ohne Layout) verwenden möchten:

%Vor%

Sie können sich Ryan Bates RailsCast # 206 hier ansehen, um zu sehen, wie er verwendet wird Außerdem zeigt er eine Methode zum Abfangen von E-Mails, bevor sie zugestellt werden, damit Sie sehen können, wie sie aussehen. Eine einfachere Methode ist die Verwendung des Brieföffner-Edelsteins , mit dem die E-Mail im Browser geöffnet wird (im Dev-Modus verwenden).

    
Caley Woods 27.10.2011 15:33
quelle