9

텍스트 메일러에 공백이 표시되지ActionMailer 내가이 파일을 전송하기로했다 ActionMailer 컨트롤러가

Welcome to znood.com, <%= @user.name %> 

You have successfully signed up to znood.com, 
Your username is: <%= @user.email %>. 

To login to the site, just follow this link: <%= @url %>. 

Thanks for joining and have a great day! 

The Znood Team 

[편집] 이것은 제어기의 코드이다

def sendmail 
     @user = User.first 
     UserMailer.welcome_email(@user).deliver 
     render "user_mailer/welcome_email.text" 
     #render the file to see what we're supposed to send 
end 

는 이것이 UserMailer 0의 코드 123,ActionMailer :: 자료 이것은 내가 이메일 수신하고있어됩니다

def welcome_email(user) 
    @user = user 
    @url = "http://znood.com/" 
    mail(:to => user.email, :subject => "Welcome to Znood!") 
    end 

:

Welcometoznood.com,AbdoAchkarYouhavesuccessfullysigneduptoznood.com,Yourusernameis:blabla.Tologintothesite,justfollowthislink:http://znood.com/.Thanksforjoiningandhaveagreatday!TheZnoodTeam 

모든 단서는 어떻게 공백, 캐리지 리턴을 포함하는 라인 피드? 나는 "콘텐츠 전송 인코딩"헤더를 변경하려고

----==_mimepart_4ea9882a2735c_1c782d964bc18193 

Date: Thu, 27 Oct 2011 19:34:50 +0300 

Mime-Version: 1.0 

Content-Type: text/plain; 

charset=UTF-8 

Content-Transfer-Encoding: 7bit 

Content-ID: <[email protected]> 



Welcometoznood.com,AbdoAchkarYouhavesuccessfullysigneduptoznood.com,Yourusername 
is:blabla.Tologintothesite,justfollowthislink:http://znood.com/.Thanksforjoiningandhaveagreatday!TheZnoodTeam 

하지만 그들은 변경하지 않는 것 :

[편집] 는 letter_opener 보석을 설치 한 후, 나는 내 콘솔에서 다음을 참조하십시오. 또한 기본값을 설정하려고했습니다. 우리가 7 비트 인코딩으로 붙어있는 것처럼 보입니다.

[편집] 우리가 문제를 찾을 수 있도록해야하는 또 다른

내가 파일 렌더러가 문제가 있는지 여부를 확인하기 위해 메일 기능에 다음 PARAMS을 전달하려한다는 것입니다 : "Hellothere"

mail(:to => user.email, :subject => "Welcome to Znood!") do |format| 
     #format.text(:content_transfer_encoding => "base64") 
     format.text { render :text => "Hello there!" } 
    end 

또한 대조가 나왔다.

그런 다음 오류를 유발하는 렌더링 또는 메일 기능인지 확인하기 위해 아래 코드를 시도했습니다.

mail(:to => user.email, :subject => "Welcome to Znood!") do |format| 
     format.text { "hello there!" } 
end 

또한 출품되었습니다.

+0

소스 템플릿의 CRLF는 무엇입니까? –

+0

정확히 모르겠지만 공백 문제를 해결하고 해결한다면 우리는 CRLF 문제도 해결할 것입니다 =) – Abdo

답변

0

해결하는 데 다소 시간이 걸렸습니다. 문제는 ActionMailer가 아닙니다.

이 문제가 발생하면 먼저이 문제를 일으키는 코드 나 보석이 아닌지 확인하십시오. 새로운 레일즈 애플리케이션을 시작하고 ActionMailer를 테스트하십시오. 나의 경우 (이 제안에 대한 @RubyCyanide 주셔서 감사합니다)

, 그것은 내 String class 초기화에 있던 기능 join이었다. 귀하 또는 귀하가 사용하고있는 보석이 Mail의 가입 기능과 충돌 할 가능성이 매우 높습니다.

희망이 도움이됩니다.

1

기본적으로 메일 프로그램은 문자 이메일을 전송해야합니다. 클라이언트 측에서이 오류가 발생했을 수 있습니다. 실제 해결책은 텍스트와 HTML 템플릿 (또는 속임수 (또는 Markdown) 만 사용)이 똑같이 단순하다면 똑같은 템플릿을 사용하는 것입니다.

+0

둘 다 가지고 있습니다. 텍스트 전자 메일이 렌더링되고 있으며 위의 전자 메일을 받고 있습니다. . 한 번에 한 파일 씩 시도한 다음 둘 다 시도했습니다. 나는 같은 문제가 계속있다. – Abdo

+0

@Abdo 여전히 클라이언트 문제 일 수 있으며 HTML 템플릿에있는 내용을 볼 수 없습니다 (실제로 HTML을 포함하고있는 것처럼). –

+0

Dave와 동의하십시오. 아마 클라이언트 문제 일 수 있습니다. –

0

ActionMailer::Base을 상속하는 클래스를 설정합니다. 그런 다음 컨트롤러에 메서드를 만들고 컨트롤러에 FooMailer.welcome_email(@user.email).deliver을 호출합니다.이 작업을 수행하는 경우 작업을 다시 렌더링하거나 지연시키기 위해 많은 작업을 수행하십시오.

간격에 문제가있는 한 welcome_email.html.erb을 보내고 전송 하시겠습니까? welcome_email 방법으로 html (레이아웃 포함 또는 제외)을 다음과 같이 지정할 수 있습니다.

def welcome_email(user) 
    @user = user 
    @url = "http://znood.com/" 
    mail(:to => user.email, :subject => "Welcome to Znood!") do |format| 
    format.html #{ render :layout => 'my_layout' } 
    end 
end 

Ryan Bates RailsCast # 206 here이 사용되는 것을 볼 수 있으며 전달되기 전에 이메일을 가로채는 방법을 보여줌으로써 볼 수 있도록 볼 수 있습니다. 더 간단한 방법은 브라우저에서 이메일을 열어주는 것입니다 (dev 모드에서 사용).

+0

죄송합니다. 코드를 편집했습니다. 이것이 내가 가진 것입니다. 다른 형식으로 시도했지만 작동하지 않았습니다. – Abdo

+0

@Abdo 아직 편지 열기 도구를 설치하고 클라이언트가 보내는 메시지 (Gmail 등)와 앱이 보내는 메시지를 확인합니다. 어쩌면 앱 문제는 아니지만 클라이언트 구성 문제 일 수 있습니다. –

+0

나는 편지 오프너 보석을 설치했고 같은 결과를 얻었다. 모든 단어가 서로 대조됩니다. – Abdo