【问题标题】:send mail in my applications laravel 4.2在我的应用程序 laravel 4.2 中发送邮件
【发布时间】:2016-08-25 10:16:59
【问题描述】:

我是 Laravel 的新手。我正在尝试发送带有附件的电子邮件

这是我尝试的。

在我的app/config/mail

'driver' => 'mail',

这是我的路线

Route::get('join-us', 'handleFormController@joinus');
Route::post('joinRequest', 'handleFormController@getJoinRequest');

这就是表格

{{ Form::open(array('url'=>'joinRequest', 'files'=>'true')) }}

                    @foreach($errors->all('
                    :message
                    ') as $message) {{ $message }}
                    @endforeach

                    <div class="form-group pull-right ">
                        {{ Form::label('name', ' ') }}
                        <div class="col-xs-12">
                            {{ Form::text('name', '', array('class'=>'form-control1 row input-sm', 'placeholder'=>'الاسم')) }}
                        </div>
                    </div>
                    <div class="form-group pull-right ">
                        {{ Form::label('email', ' ') }}
                        <div class="col-xs-12">
                            {{ Form::text('email', '', array('class'=>'form-control1 row input-sm', 'placeholder'=>'البريد الإلكتروني')) }}
                        </div>
                    </div>
                    <div class="form-group pull-right ">
                        {{ Form::label('job', ' ') }}
                        <div class="col-xs-12">
                            {{ Form::text('job', '', array('class'=>'form-control1 row input-sm', 'placeholder'=>'المهنة او الوظيفة الحاليه')) }}
                        </div>
                    </div>
                    <div class="form-group pull-right ">
                        {{ Form::label('comment', ' ') }}
                        <div class="col-xs-12">
                            {{ Form::textarea('comment', '', array('class'=>'form-control1 row input-sm', 'placeholder'=>'اترك تعليق')) }}
                        </div>
                    </div>
                    {{--<div class="form-group pull-right ">
                        {{ Form::label('resume', ' ') }}
                        <div class="col-xs-12">
                            {{ HTML::script('siteroot/fileinput.js') }}
                            {{ Form::file('resume', array('class'=>'file')) }}
                        </div>
                    </div>--}}
                    <div class="col-xs-12  pull-right">
                        {{ Form::submit('أرسال', array('class'=>'btn btn-primary pull-right')) }}
                    </div>
                    {{Form::close()}}

这是我的控制器

public function getJoinRequest()
    {
        $data = Input::all();
        $rules = array(
            'name' => 'required|regex:/^[\pL\s\-]+$/u',
            'email' => 'required|email',
            'job' => 'required|alpha',
            'comment' => 'required|min:25'
        );

        $validator = Validator::make($data, $rules);
        if ($validator->passes()) {
            Mail::send('emails.joinRetunMessage.hello', $data, function ($message) use ($data) {
                $message->from($data['email'], $data['name']);
                $message->to('johnef_sh@hotmail.com', 'El Arabia')->subject('Join us request');
                /*$message->attach($data['resume']->getRealPath(), array(
                        'as' => 'resume.' . $data['resume']->getClientOriginalExtension(),
                        'mime' => $data['resume']->getMimeType())
                );*/
            });
            return Redirect::to('/join-us')
                ->with('message', 'Your message has been sent. Thank You!');
        } else {
            return Redirect::to('/join-us')->withErrors($validator);
        }
    }

当我提交表单时,它返回页面没有任何错误,但邮件没有发送。

【问题讨论】:

  • @Andrej Ludinovskov 你可能没有得到我的问题,我试图通过 Laravel 4.2 而非原生 PHP 发送它
  • 但是你使用原生php函数mail作为驱动。这意味着您设置正确。

标签: php laravel-4


【解决方案1】:

我使用以下代码发送临时密码以防忘记密码

public function postForgotPassword(ForgotPasswordRequest $request){

$email=$request->email;
 $objUser=DB::table('users')
                  ->where('email','=',$email)
                  ->select('email','id','first_name','last_name','user_group_id')
                  ->first();

$string = str_random(15);
$pass=\Hash::make($string);

$objUser2=User::find($objUser->id);
$CURRENT_TIMESTAMP=new DateTime();
$objUser2->temporary_pass=$pass;
$objUser2->pass_status=1;
$objUser2->updated_at=$CURRENT_TIMESTAMP;
$objUser2->save();            

$data=array("email"=>$email,"pass"=>$string,"first_name"=>$objUser->first_name,"last_name"=>$objUser->last_name);
          $email=array("email"=>$email);
          Mail::send('emails.forgot_password',$data, function($message) use($email) {
          $message->to($email['email'],'MoveInSpace')->subject('Password Recovery ');
          });

          return Redirect::to('auth/login')->with('flash_message','Check your email account for temporary password');
}

我在位于 view.emails 文件夹中的 forgot_password.blade.php 中编写电子邮件模板。 还要确保正确配置配置邮件文件。如果可能的话,使用 smtp 驱动程序

'driver' => 'smtp',

我在 mail.php 中使用以下代码

'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => 'abc@gmail.com', 'name' => 'ABC'),
'encryption' => 'tls',
'username' => 'abc@gmail.com',
'password' => 'yourpassword',
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

【讨论】:

    猜你喜欢
    • 2015-12-23
    • 2017-07-16
    • 2015-09-07
    • 1970-01-01
    • 2020-06-08
    • 2016-11-20
    • 1970-01-01
    • 2015-12-19
    • 2015-12-04
    相关资源
    最近更新 更多